1. 25 Sep, 2006 3 commits
    • Sam Ravnborg's avatar
      kbuild: make V=2 tell why a target is rebuild · 45d506bd
      Sam Ravnborg authored
      tell why a a target got build
         enabled by make V=2
            Output (listed in the order they are checked):
               (1) - due to target is PHONY
               (2) - due to target missing
               (3) - due to: file1.h file2.h
               (4) - due to command line change
               (5) - due to missing .cmd file
               (6) - due to target not in $(targets)
      (1) We always build PHONY targets
      (2) No target, so we better build it
      (3) Prerequisite is newer than target
      (4) The command line stored in the file named dir/.target.cmd
          differed from actual command line. This happens when compiler
          options changes
      (5) No dir/.target.cmd file (used to store command line)
      (6) No dir/.target.cmd file and target not listed in $(targets)
          This is a good hint that there is a bug in the kbuild file
      This patch is inspired by a patch from: Milton Miller <miltonm@bga.com>
      Cc: Milton Miller <miltonm@bga.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Sam Ravnborg's avatar
      kbuild: modpost on vmlinux regardless of CONFIG_MODULES · 12715d20
      Sam Ravnborg authored
      Based on patch from: Magnus Damm <magnus@valinux.co.jp>
      This has the advantage that all section mismatch checks are run regardless
      of modules being enabled or not.
      When running modpost on vmlinux output:
      MODPOST vmlinux
      When running modpost on modules output count of modules like this:
      MODPOST 5 modules
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Sam Ravnborg's avatar
      kbuild: use in-kernel unifdef · 07aea3a7
      Sam Ravnborg authored
      Let headers_install use in-kernel unifdef
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
  2. 19 Sep, 2006 2 commits
  3. 16 Sep, 2006 1 commit
    • David Woodhouse's avatar
      [PATCH] headers_check: use a different default directory · 1ab7a1f3
      David Woodhouse authored
      `make headers_check' wants to go and write stuff in /lib/modules, which
      requires root, whic is unfortunate.
      In fact, there's no _particular_ reason for headers_install to put it there
      either -- it can go into a subdirectory of the build tree in both cases.
      It's not intended to go directly into /usr/include, which is why we didn't
      put it there -- and we certainly don't want people screwing around with
      symlinking to it.  It's for distributors to take away and do stuff with, so
      leaving it in $(objtree) is fine, even in the headers_install case.
      I picked $(objtree)/usr/include but I have no _particular_ preference
      for that; it just seemed reasonable.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  4. 12 Sep, 2006 1 commit
  5. 03 Sep, 2006 1 commit
  6. 27 Aug, 2006 1 commit
  7. 16 Aug, 2006 1 commit
  8. 07 Aug, 2006 1 commit
  9. 06 Aug, 2006 1 commit
  10. 01 Aug, 2006 2 commits
  11. 30 Jul, 2006 1 commit
  12. 15 Jul, 2006 1 commit
  13. 05 Jul, 2006 2 commits
  14. 03 Jul, 2006 1 commit
    • Sam Ravnborg's avatar
      kbuild: introduce utsrelease.h · 63104eec
      Sam Ravnborg authored
      include/linux/version.h contained both actual KERNEL version
      and UTS_RELEASE that contains a subset from git SHA1 for when
      kernel was compiled as part of a git repository.
      This had the unfortunate side-effect that all files including version.h
      would be recompiled when some git changes was made due to changes SHA1.
      Split it out so we keep independent parts in separate files.
      Also update checkversion.pl script to no longer check for UTS_RELEASE.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
  15. 02 Jul, 2006 1 commit
  16. 01 Jul, 2006 2 commits
    • Dustin Kirkland's avatar
      kbuild: documentation change on allowing checkers besides sparse · 701842e3
      Dustin Kirkland authored
      Minor documentation change on allowing checkers besides sparse
      This patch cleans up a couple of mentions of sparse in the inline
      toplevel Makefile documentation such that it's clear that other checkers
      besides sparse can override CHECK and CHECKFLAGS.
      Signed-off-by: default avatarDustin Kirkland <dustin.kirkland@us.ibm.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Sam Ravnborg's avatar
      kbuild: fix ia64 breakage after introducing make -rR · 5e8d780d
      Sam Ravnborg authored
      kbuild used $¤(*F to get filename of target without extension.
      This was used in several places all over kbuild, but introducing
      make -rR broke his for all cases where we specified full path to
      target/prerequsite. It is assumed that make -rR disables old style
      suffix-rules which is why is suddenly failed.
      ia64 was impacted by this change because several div* routines in
      arch/ia64/lib are build using explicit paths and then kbuild failed.
      Thanks to David Mosberger-Tang <David.Mosberger@acm.org> for an explanation
      what was the root-cause and for testing on ia64.
      This patch also fixes two uses of $(*F) in arch/um
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
  17. 24 Jun, 2006 5 commits
    • Sam Ravnborg's avatar
      kbuild: trivial fixes in Makefile · 070b98bf
      Sam Ravnborg authored
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Masatake YAMATO's avatar
      kbuild: adding symbols in Kconfig and defconfig to TAGS · e838db68
      Masatake YAMATO authored
      I'm using TAGS generated from "make TAGS" to read the kernel source code.
      When I met a ifdef block
      	  #ifdef CONFIG_FOO
      in the soruce code I would like to know the meaning CONFIG_FOO
      to decide whether I should read inside the ifdef block
      or not. meaning CONFIG_FOO is well documented in Kconfig.
      So it is nice if I can jump to CONFIG_FOO entry in Kconfig
      from "#ifdef CONFIG_FOO" with the tag jump.
      Here is the patch to add symbols in Kconfig and defconfig to TAGS
      in "make TAGS" operation.
      Signed-off-by: default avatarMasatake YAMATO <jet@gyve.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Andreas Gruenbacher's avatar
      kbuild: support for %.symtypes files · 15fde675
      Andreas Gruenbacher authored
      Here is a patch that adds a new -T option to genksyms for generating dumps of
      the type definition that makes up the symbol version hashes. This allows to
      trace modversion changes back to what caused them. The dump format is the
      name of the type defined, followed by its definition (which is almost C):
        s#list_head struct list_head { s#list_head * next , * prev ; }
      The s#, u#, e#, and t# prefixes stand for struct, union, enum, and typedef.
      The exported symbols do not define types, and thus do not have an x# prefix:
        nfs4_acl_get_whotype int nfs4_acl_get_whotype ( char * , t#u32 )
      The symbol type defintion of a single file can be generated with:
        make fs/jbd/journal.symtypes
      If KBUILD_SYMTYPES is defined, all the *.symtypes of all object files that
      export symbols are generated.
      The single *.symtypes files can be combined into a single file after a kernel
      build with a script like the following:
      for f in $(find -name '*.symtypes' | sort); do
          echo "/* ${f%.symtypes}.o */"
          cat $f
      done \
      | sed -e '\:UNKNOWN:d' \
            -e 's:[,;] }:}:g' \
            -e 's:\([[({]\) :\1:g' \
            -e 's: \([])},;]\):\1:g' \
            -e 's: $::' \
            $f \
      | awk '
      /^.#/   { if (defined[$1] == $0) {
                  print $1
                defined[$1] = $0
              { print }
      When the kernel ABI changes, diffing individual *.symtype files, or the
      combined files, against each other will show which symbol changes caused the
      ABI changes. This can save a tremendous amount of time.
      Dump the types that make up modversions
      Signed-off-by: default avatarAndreas Gruenbacher <agruen@suse.de>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Roman Zippel's avatar
      kbuild: fix silentoldconfig recursion · 3041e47e
      Roman Zippel authored
      kconfig-fix-config-dependencies causes this:
      make CC=cc  KBUILD_VERBOSE=1 -C /usr/src/25 SUBDIRS=/home/akpm/NVIDIA-Linux-x86_64-1.0-8762-pkg2/usr/src/nv modules
      make -f /usr/src/devel/Makefile silentoldconfig
      make -f /usr/src/devel/Makefile silentoldconfig
      make -f /usr/src/devel/Makefile silentoldconfig
      The basic problem is if we compile external modules, config-targets isn't
      set which can cause recursive calls to silentoldconfig to update the
      kernel configuration.
      Bail out and ask the user to update manually.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Theodore Ts'o's avatar
      kbuild: add option for stripping modules while installing them · ac031f26
      Theodore Ts'o authored
      Add option for stripping modules while installing them.
      This function adds support for stripping modules while they are being
      installed.  CONFIG_DEBUG_KERNEL (which will probably become more
      popular as developers use kdump) causes the size of the installed
      modules to grow by a factor of 9 or so.
      Some kernel package systems solve this problem by stripping the debug
      information from /lib/modules after running "make modules_install",
      but that may not work for people who are installing directly into
      /lib/modules --- root partitions that were sized to handle 16 megs
      worth of modules may not be quite so happy with 145 megs of modules,
      so the "make modules_install" never succeeds.
      This patch allows such users to request modules_install to strip the
      modules as they are installed.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
  18. 18 Jun, 2006 2 commits
    • David Woodhouse's avatar
      Basic implementation of 'make headers_check' · 68475359
      David Woodhouse authored
      Based on the 'headers_install' target, this performs a basic sanity check
      on the exported headers -- so far only checking that they do not include
      any other headers which aren't selected for import, but easily extendable.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
    • David Woodhouse's avatar
      Basic implementation of 'make headers_install' · 8d730cfb
      David Woodhouse authored
      This adds a make target which exports a subset of headers which contain
      definitions which are useful for system libraries and tools. It uses the
      BSD 'unifdef' tool to remove instances of #ifdef __KERNEL__, and uses
      sed to remove markers like __user.
      Based on an original implementation by Arnd Bergmann <arnd@arndb.de>
      Hacked about by David Woodhouse <dwmw2@infradead.org>
      Reviewed and cleaned up by Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
  19. 17 Jun, 2006 1 commit
    • Linus Torvalds's avatar
      Linux v2.6.17 · 427abfa2
      Linus Torvalds authored
      Being named "Crazed Snow-Weasel" instills a lot of confidence in this
      release, so I'm sure this will be one of the better ones.
  20. 10 Jun, 2006 1 commit
    • Sam Ravnborg's avatar
      kbuild: ignore make's built-in rules & variables · 566f81ca
      Sam Ravnborg authored
      kbuild does explicitly specify what to do in all cases, and each
      time make's built-in rules & variables has been used it has been a bug.
      So to speed up things and to avoid the hard-to-debug error situations
      ignore the built-in definitions.
      If any part of the kernel uses the built-in definitions the build will
      just stop there and it should be trivial to fix.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
  21. 09 Jun, 2006 3 commits
  22. 08 Jun, 2006 3 commits
    • Roman Zippel's avatar
      kconfig: move .kernelrelease · f1d28fb0
      Roman Zippel authored
      This moves the .kernelrelease file into include/config directory.  Remove its
      generation from the config step, if the config step doesn't leave a proper
      .config behind, it triggers a call to silentoldconfig.  Instead its generation
      can be done via proper dependencies.
      Signed-off-by: default avatarRoman Zippel <zippel@linux-m68k.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Roman Zippel's avatar
      kconfig: integrate split config into silentoldconfig · 2e3646e5
      Roman Zippel authored
      Now that kconfig can load multiple configurations, it becomes simple to
      integrate the split config step, by simply comparing the new .config file with
      the old auto.conf (and then saving the new auto.conf).  A nice side effect is
      that this saves a bit of disk space and cache, as no data needs to be read
      from or saved into the splitted config files anymore (e.g.  include/config is
      now 648KB instead of 5.2MB).
      Signed-off-by: default avatarRoman Zippel <zippel@linux-m68k.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    • Roman Zippel's avatar
      kconfig: fix .config dependencies · c955ccaf
      Roman Zippel authored
      This fixes one of the worst kbuild warts left - the broken dependencies used
      to check and regenerate the .config file.  This was done via an indirect
      dependency and the .config itself had an empty command, which can cause make
      not to reread the changed .config file.
      Instead of this we generate now a new file include/config/auto.conf from
      .config, which is used for kbuild and has the proper dependencies.  It's also
      the main make target now for all files generated during this step (and thus
      replaces include/linux/autoconf.h).
      This also means we can now relax the syntax requirements for the .config file
      and we don't have to rewrite it all the time, i.e.  silentoldconfig only
      writes .config now when it's necessary to keep it in sync with the Kconfig
      files and even this can be suppressed by setting the environment variable
      KCONFIG_NOSILENTUPDATE, so the update can (and must) be done manually.
      Signed-off-by: default avatarRoman Zippel <zippel@linux-m68k.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
  23. 05 Jun, 2006 1 commit
  24. 24 May, 2006 1 commit
  25. 11 May, 2006 1 commit