Skip to content
Snippets Groups Projects
  1. Jul 30, 2014
    • Andi Kleen's avatar
      kbuild: Support split debug info v4 · 866ced95
      Andi Kleen authored
      This is an alternative approach to lower the overhead of debug info
      (as we discussed a few days ago)
      
      gcc 4.7+ and newer binutils have a new "split debug info" debug info
      model where the debug info is only written once into central ".dwo" files.
      
      This avoids having to copy it around multiple times, from the object
      files to the final executable. It lowers the disk space
      requirements. In addition it defaults to compressed debug data.
      
      More details here: http://gcc.gnu.org/wiki/DebugFission
      
      This patch adds a new option to enable it. It has to be an option,
      because it'll undoubtedly break everyone's debuginfo packaging scheme.
      gdb/objdump/etc. all still work, if you have new enough versions.
      
      I don't see big compile wins (maybe a second or two faster or so), but the
      object dirs with debuginfo get significantly smaller. My standard kernel
      config (slightly bigger than defconfig) shrinks from 2.9G disk space
      to 1.1G objdir (with non reduced debuginfo). I presume if you are IO limited
      the compile time difference will be larger.
      
      Only problem I've seen so far is that it doesn't play well with older
      versions of ccache (apparently fixed, see
      https://bugzilla.samba.org/show_bug.cgi?id=10005
      
      )
      
      v2: various fixes from Dirk Gouders. Improve commit message slightly.
      v3: Fix clean rules and improve Kconfig slightly
      v4: Fix merge error in last version (Sam Ravnborg)
          Clarify description that it mainly helps disk size.
      Cc: Dirk Gouders <dirk@gouders.net>
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      866ced95
  2. Jul 18, 2014
    • Masahiro Yamada's avatar
      kbuild: allow to override Python command name · 011bf125
      Masahiro Yamada authored
      
      The specification of Python 3 is largely different from that of
      Python 2.
      
      For example, arch/ia64/scripts/unwcheck.py seems to be written
      in Python 2, not compatible with Python 3.
      
      It is not a good idea to invoke python scripts with the hard-coded
      command name 'python'. The command 'python' could possibly be
      Python 3 on some systems.
      For that case, it is reasonable to allow to override the command name
      by giving 'PYTHON=python2' from the command line.
      
      The 'python' in arch/ia64/Makefile should be replaced with '$(PYTHON)'.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Cc: linux-ia64@vger.kernel.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      011bf125
  3. Jun 16, 2014
  4. Jun 09, 2014
  5. Jun 08, 2014
  6. Jun 07, 2014
  7. Jun 02, 2014
  8. May 25, 2014
  9. May 21, 2014
  10. May 14, 2014
  11. May 09, 2014
  12. May 05, 2014
  13. Apr 30, 2014
  14. Apr 28, 2014
  15. Apr 20, 2014
  16. Apr 16, 2014
  17. Apr 13, 2014
  18. Apr 09, 2014
  19. Apr 08, 2014
    • Jason Cooper's avatar
      scripts: objdiff: detect object code changes between two commits · 79192ca8
      Jason Cooper authored
      
      objdiff is useful when doing large code cleanups.  For example, when
      removing checkpatch warnings and errors from new drivers in the staging
      tree.
      
      objdiff can be used in conjunction with a git rebase to confirm that
      each commit made no changes to the resulting object code.  It has the
      same return values as diff(1).
      
      This was written specifically to support adding the skein and threefish
      cryto drivers to the staging tree.  I needed a programmatic way to
      confirm that commits changing >90% of the lines didn't inadvertently
      change the code.
      
      Temporary files (objdump output) are stored in
      
        /path/to/linux/.tmp_objdiff
      
      'make mrproper' will remove this directory.
      
      Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      79192ca8
  20. Mar 31, 2014
  21. Mar 29, 2014
    • Paul Gortmaker's avatar
      kbuild: unconditionally clobber include/linux/version.h on distclean · 9c8cdb71
      Paul Gortmaker authored
      
      As of v3.7, the UAPI changes relocated headers around such that the
      kernel version header lived in a new place.
      
      If a person is bisecting and if you go back to pre-UAPI days,
      you will create an include/linux/version.h  -- then if you checkout a
      post-UAPI kernel, and even run "make distclean" it still won't delete
      that old version file.  So you get a situation like this:
      
      $ grep -R LINUX_VERSION_CODE include/
      include/generated/uapi/linux/version.h:#define LINUX_VERSION_CODE 200192
      include/linux/version.h:#define LINUX_VERSION_CODE 132646
      
      The value in that second line is representative of a v2.6.38 version.
      And it will be sourced/used, hence leading to strange behaviours, such
      as drivers/staging content (which typically hasn't been purged of version
      ifdefs) failing to build.
      
      Since it is a subtle mode of failure, lets always clobber the old
      file when doing a distclean.
      
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      9c8cdb71
  22. Mar 25, 2014
  23. Mar 17, 2014
  24. Mar 10, 2014
  25. Mar 03, 2014
  26. Feb 25, 2014
  27. Feb 24, 2014
  28. Feb 20, 2014
    • Jason Cooper's avatar
      kbuild: dtbs_install: new make target · f4d4ffc0
      Jason Cooper authored
      
      Unlike other build products in the Linux kernel, there is no 'make
      *install' mechanism to put devicetree blobs in a standard place.
      
      This commit adds a new 'dtbs_install' make target which copies all of
      the dtbs into the INSTALL_DTBS_PATH directory. INSTALL_DTBS_PATH can be
      set before calling make to change the default install directory. If not
      set then it defaults to:
      
      	$INSTALL_PATH/dtbs/$KERNELRELEASE.
      
      This is done to keep dtbs from different kernel versions separate until
      things have settled down.  Once the dtbs are stable, and not so strongly
      linked to the kernel version, the devicetree files will most likely move
      to their own repo.  Users will need to upgrade install scripts at that
      time.
      
      v7: (reworked by Grant Likely)
      - Moved rules from arch/arm/Makefile to arch/arm/boot/dts/Makefile so
        that each dtb install could have a separate target and be reported as
        part of the make output.
      - Fixed dependency problem to ensure $KERNELRELEASE is calculated before
        attempting to install
      - Removed option to call external script. Copying the files should be
        sufficient and a build system can post-process the install directory.
        Despite the fact an external script is used for installing the kernel,
        I don't think that is a pattern that should be encouraged. I would
        rather see buildroot type tools post process the install directory to
        rename or move dtb files after installing to a staging directory.
        - Plus it is easy to add a hook after the fact without blocking the
          rest of this feature.
      - Move the helper targets into scripts/Makefile.lib with the rest of the
        common dtb rules
      
      Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      Signed-off-by: default avatarGrant Likely <grant.likely@linaro.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Rob Herring <robh+dt@kernel.org>
      f4d4ffc0
  29. Feb 16, 2014
  30. Feb 10, 2014
  31. Feb 06, 2014
    • Prarit Bhargava's avatar
      scripts/tags.sh: Ignore *.mod.c · ae63b2d7
      Prarit Bhargava authored
      
      CONFIG_MODVERSIONS=y results in a .mod.c for every compiled file in the
      kernel. Issuing a 'make cscope' on a compiled kernel tree results in
      the cscope files containing *.mod.c files.
      
      [prarit@prarit linux]# make cscope
      [prarit@prarit linux]# cat cscope.files | grep mod.c | wc -l
      4807
      
      These files are not useful for cscope and should be ignored. For example,
      
         #   line  filename / context / line
         1    105  arch/x86/kvm/kvm-intel.mod.c <<GLOBAL>>
                   { 0x618911fc, __VMLINUX_SYMBOL_STR(numa_node) },
         2    508  drivers/block/mtip32xx/mtip32xx.h <<GLOBAL>>
                   int numa_node;
         3     55  drivers/block/mtip32xx/mtip32xx.mod.c <<GLOBAL>>
                   { 0x618911fc, __VMLINUX_SYMBOL_STR(numa_node) },
         4     37  drivers/cpufreq/acpi-cpufreq.mod.c <<GLOBAL>>
                   { 0x618911fc, __VMLINUX_SYMBOL_STR(numa_node) },
         <snip>
      
      Add an export to RCS_FIND_IGNORE so it can be used in scripts/tags.sh
      and add explicitly ignore *.mod.c files.
      
      Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Kirill Tkhai <tkhai@yandex.ru>
      Cc: Michael Opdenacker <michael.opdenacker@free-electrons.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      ae63b2d7
Loading