1. 03 Mar, 2013 1 commit
  2. 22 Feb, 2013 2 commits
    • Andi Kleen's avatar
      Kbuild: Disable var tracking with CONFIG_DEBUG_INFO_REDUCED · e82c4bb8
      Andi Kleen authored
      
      
      Newer gcc enables the var-tracking pass with -g to keep track which
      registers contain which variables. This is one of the slower passes in gcc.
      
      With reduced debug info (aimed at objdump -S, but not using a full debugger)
      we don't need this fine grained tracking. But it was still enabled
      because -g was enabled. Disable it explicitely for DEBUG_INFO_REDUCED.
      
      On my 8T workstation this gives me about a 12 second gain in building
      a reasonable kernel config (2min16 vs 2min28) with DEBUG_INFO_REDUCED.
      With full DEBUG_INFO it takes 2min46
      
      The actual improvement in user time taken by the compiler is much higher
      (all CPU combined user time 15min5s vs 16m30 before)
      but the usual amdahl bottleneck on the linker prevents more speedup.
      It still saves some more energy and keeps cycles for other things.
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      e82c4bb8
    • James Hogan's avatar
      depmod: pass -P $CONFIG_SYMBOL_PREFIX · 8937e897
      James Hogan authored
      
      
      On architectures which have symbol prefixes, depmod emits lots of
      warnings like this:
      
      WARNING: $module.ko needs unknown symbol $symbol
      
      This is because depmod isn't being passed the -P <symbol_prefix>
      arguments to specify the symbol prefix to ignore. This option is
      included since the 3.13 release of module-init-tools.
      
      Update scripts/depmod.sh to take extra arguments for the symbol prefix
      (required but may be empty), and update the main Makefile to always pass
      "$(CONFIG_SYMBOL_PREFIX)" to scripts/depmod.sh.
      
      If the provided symbol prefix is non-empty, scripts/depmod.sh checks if
      depmod --version reports module-init-tools with a version number < 3.13
      otherwise it appends -P $SYMBOL_PREFIX to the depmod command line.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: linux-kbuild@vger.kernel.org
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: uclinux-dist-devel@blackfin.uclinux.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      8937e897
  3. 18 Feb, 2013 1 commit
  4. 08 Feb, 2013 1 commit
  5. 31 Jan, 2013 1 commit
  6. 25 Jan, 2013 1 commit
  7. 24 Jan, 2013 3 commits
  8. 22 Jan, 2013 1 commit
  9. 17 Jan, 2013 1 commit
  10. 09 Jan, 2013 1 commit
  11. 02 Jan, 2013 1 commit
  12. 21 Dec, 2012 1 commit
  13. 20 Dec, 2012 1 commit
    • David Woodhouse's avatar
      x86: Default to ARCH=x86 to avoid overriding CONFIG_64BIT · ffee0de4
      David Woodhouse authored
      
      
      It is easy to waste a bunch of time when one takes a 32-bit .config
      from a test machine and try to build it on a faster 64-bit system, and
      its existing setting of CONFIG_64BIT=n gets *changed* to match the
      build host.  Similarly, if one has an existing build tree it is easy
      to trash an entire build tree that way.
      
      This is because the default setting for $ARCH when discovered from
      'uname' is one of the legacy pre-x86-merge values (i386 or x86_64),
      which effectively force the setting of CONFIG_64BIT to match. We should
      default to ARCH=x86 instead, finally completing the merge that we
      started so long ago.
      
      This patch preserves the behaviour of the legacy ARCH settings for commands
      such as:
      
         make ARCH=x86_64 randconfig
         make ARCH=i386 randconfig
      
      ... since making the value of CONFIG_64BIT actually random in that situation
      is not desirable.
      
      In time, perhaps we can retire this legacy use of the old ARCH= values.
      We already have a way to override values for *any* config option, using
      $KCONFIG_ALLCONFIG, so it could be argued that we don't necessarily need
      to keep ARCH={i386,x86_64} around as a special case just for overriding
      CONFIG_64BIT.
      
      We'd probably at least want to add a way to override config options from
      the command line ('make CONFIG_FOO=y oldconfig') before we talk about doing
      that though.
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      Link: http://lkml.kernel.org/r/1356040315.3198.51.camel@shinybook.infradead.org
      
      Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      ffee0de4
  14. 13 Dec, 2012 1 commit
    • Josh Boyer's avatar
      MODSIGN: Add modules_sign make target · d890f510
      Josh Boyer authored
      
      
      If CONFIG_MODULE_SIG is set, and 'make modules_sign' is called then this
      patch will cause the modules to get a signature appended.  The make target
      is intended to be run after 'make modules_install', and will modify the
      modules in-place in the installed location.  It can be used to produce
      signed modules after they have been processed by distribution build
      scripts.
      Signed-off-by: default avatarJosh Boyer <jwboyer@redhat.com>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (minor typo fix)
      d890f510
  15. 10 Dec, 2012 1 commit
  16. 09 Dec, 2012 1 commit
  17. 03 Dec, 2012 1 commit
  18. 25 Nov, 2012 1 commit
  19. 20 Nov, 2012 1 commit
  20. 19 Nov, 2012 1 commit
    • David Howells's avatar
      tools: Honour the O= flag when tool build called from a higher Makefile · bf35182f
      David Howells authored
      
      
      Honour the O= flag that was passed to a higher level Makefile and then passed
      down as part of a tool build.
      
      To make this work, the top-level Makefile passes the original O= flag and
      subdir=tools to the tools/Makefile, and that in turn passes
      subdir=$(O)/$(subdir)/foodir when building tool foo in directory
      $(O)/$(subdir)/foodir (where the intervening slashes aren't added if an
      element is missing).
      
      For example, take perf.  This is found in tools/perf/.  Assume we're building
      into directory ~/zebra/, so we pass O=~/zebra to make.  Dependening on where
      we run the build from, we see:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			~/zebra/tools/perf/
      	linux/tools		~/zebra/perf/
      	linux/tools/perf	~/zebra/
      
      and if O= is not set, we get:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			linux/tools/perf/
      	linux/tools		linux/tools/perf/
      	linux/tools/perf	linux/tools/perf/
      
      The output directories are created by the descend function if they don't
      already exist.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.uk
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bf35182f
  21. 16 Nov, 2012 1 commit
  22. 14 Nov, 2012 1 commit
    • David Howells's avatar
      tools: Honour the O= flag when tool build called from a higher Makefile · 9db48cd5
      David Howells authored
      
      
      Honour the O= flag that was passed to a higher level Makefile and then passed
      down as part of a tool build.
      
      To make this work, the top-level Makefile passes the original O= flag and
      subdir=tools to the tools/Makefile, and that in turn passes
      subdir=$(O)/$(subdir)/foodir when building tool foo in directory
      $(O)/$(subdir)/foodir (where the intervening slashes aren't added if an
      element is missing).
      
      For example, take perf.  This is found in tools/perf/.  Assume we're building
      into directory ~/zebra/, so we pass O=~/zebra to make.  Dependening on where
      we run the build from, we see:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			~/zebra/tools/perf/
      	linux/tools		~/zebra/perf/
      	linux/tools/perf	~/zebra/
      
      and if O= is not set, we get:
      
      	make run in dir		$(OUTPUT) dir
      	=======================	==================
      	linux			linux/tools/perf/
      	linux/tools		linux/tools/perf/
      	linux/tools/perf	linux/tools/perf/
      
      The output directories are created by the descend function if they don't
      already exist.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Borislav Petkov <bp@amd64.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.uk
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9db48cd5
  23. 11 Nov, 2012 1 commit
  24. 04 Nov, 2012 1 commit
  25. 28 Oct, 2012 1 commit
  26. 20 Oct, 2012 1 commit
  27. 19 Oct, 2012 2 commits
  28. 17 Oct, 2012 1 commit
  29. 14 Oct, 2012 1 commit
  30. 10 Oct, 2012 2 commits
  31. 02 Oct, 2012 3 commits
    • David Howells's avatar
      UAPI: Plumb the UAPI Kbuilds into the user header installation and checking · 10b63956
      David Howells authored
      
      
      Plumb the UAPI Kbuilds into the user header installation and checking system.
      As the headers are split the entries will be transferred across from the old
      Kbuild files to the UAPI Kbuild files.
      
      The changes made in this commit are:
      
       (1) Exported generated files (of which there are currently four) are moved to
           uapi/ directories under the appropriate generated/ directory, thus we
           get:
      
      	include/generated/uapi/linux/version.h
      	arch/x86/include/generated/uapi/asm/unistd_32.h
      	arch/x86/include/generated/uapi/asm/unistd_64.h
      	arch/x86/include/generated/uapi/asm/unistd_x32.h
      
           These paths were added to the build as -I flags in a previous patch.
      
       (2) scripts/Makefile.headersinst is now given the UAPI path to install from
           rather than the old path.
      
           It then determines the old path from that and includes that Kbuild also
           if it exists, thus permitting the headers to exist in either directory
           during the changeover.
      
           I also renamed the "install" variable to "installdir" as it refers to a
           directory not the install program.
      
       (3) scripts/headers_install.pl is altered to take a list of source file paths
           instead of just their names so that the makefile can tell it exactly
           where to find each file.
      
           For the moment, files can be obtained from one of four places for each
           output directory:
      
      	.../include/uapi/foo/
      	.../include/generated/uapi/foo/
      	.../include/foo/
      	.../include/generated/foo/
      
           The non-UAPI paths will be dropped later.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarDave Jones <davej@redhat.com>
      10b63956
    • David Howells's avatar
      UAPI: Move linux/version.h · d183e6f5
      David Howells authored
      
      
      Move include/linux/version.h to the include/generated/ header directory.
      A later patch will move it to include/uapi/generated/.
      
      This allows us to get rid of the objhdr-y list.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarDave Jones <davej@redhat.com>
      d183e6f5
    • David Howells's avatar
      UAPI: Partition the header include path sets and add uapi/ header directories · abbf1590
      David Howells authored
      
      
      Partition the header include path flags into two sets, one for kernelspace
      builds and one for userspace builds.
      
      Add the following directories to build after the ordinary include directories
      so that #include will pick up the UAPI header directly if the kernel header
      has been moved there.
      
      The userspace set (represented by the USERINCLUDE make variable) contains:
      
      	-I $(srctree)/arch/$(hdr-arch)/include/uapi
      	-I arch/$(hdr-arch)/include/generated/uapi
      	-I $(srctree)/include/uapi
      	-I include/generated/uapi
      	-include $(srctree)/include/linux/kconfig.h
      
      and the kernelspace set (represented by the LINUXINCLUDE make variable)
      contains:
      
      	-I $(srctree)/arch/$(hdr-arch)/include
      	-I arch/$(hdr-arch)/include/generated
      	-I $(srctree)/include
      	-I include		--- if not building in the source tree
      
      plus everything in the USERINCLUDE set.
      
      Then use USERINCLUDE in building the x86 boot code.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarDave Jones <davej@redhat.com>
      abbf1590
  32. 30 Sep, 2012 1 commit
  33. 23 Sep, 2012 1 commit