20 Sep, 2006

1 commit


19 Sep, 2006

1 commit


17 Sep, 2006

1 commit

  • `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: David Woodhouse
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Woodhouse
     

13 Sep, 2006

1 commit


04 Sep, 2006

1 commit


28 Aug, 2006

1 commit


17 Aug, 2006

2 commits


08 Aug, 2006

2 commits


07 Aug, 2006

1 commit


01 Aug, 2006

2 commits


30 Jul, 2006

1 commit


16 Jul, 2006

1 commit


06 Jul, 2006

2 commits


05 Jul, 2006

1 commit

  • * git://git.infradead.org/hdrinstall-2.6:
    Remove export of include/linux/isdn/tpam.h
    Remove and from userspace export
    Restrict headers exported to userspace for SPARC and SPARC64
    Add empty Kbuild files for 'make headers_install' in remaining arches.
    Add Kbuild file for Alpha 'make headers_install'
    Add Kbuild file for SPARC 'make headers_install'
    Add Kbuild file for IA64 'make headers_install'
    Add Kbuild file for S390 'make headers_install'
    Add Kbuild file for i386 'make headers_install'
    Add Kbuild file for x86_64 'make headers_install'
    Add Kbuild file for PowerPC 'make headers_install'
    Add generic Kbuild files for 'make headers_install'
    Basic implementation of 'make headers_check'
    Basic implementation of 'make headers_install'

    Linus Torvalds
     

04 Jul, 2006

1 commit

  • 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: Sam Ravnborg

    Sam Ravnborg
     

03 Jul, 2006

1 commit


01 Jul, 2006

2 commits

  • 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: Dustin Kirkland
    Signed-off-by: Sam Ravnborg

    Dustin Kirkland
     
  • 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 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: Sam Ravnborg

    Sam Ravnborg
     

27 Jun, 2006

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (40 commits)
    kbuild: trivial fixes in Makefile
    kbuild: adding symbols in Kconfig and defconfig to TAGS
    kbuild: replace abort() with exit(1)
    kbuild: support for %.symtypes files
    kbuild: fix silentoldconfig recursion
    kbuild: add option for stripping modules while installing them
    kbuild: kill some false positives from modpost
    kbuild: export-symbol usage report generator
    kbuild: fix make -rR breakage
    kbuild: append -dirty for updated but uncommited changes
    kbuild: append git revision for all untagged commits
    kbuild: fix module.symvers parsing in modpost
    kbuild: ignore make's built-in rules & variables
    kbuild: bugfix with initramfs
    kbuild: modpost build fix
    kbuild: check license compatibility when building modules
    kbuild: export-type enhancement to modpost.c
    kbuild: add dependency on kernel.release to the package targets
    kbuild: `make kernelrelease' speedup
    kconfig: KCONFIG_OVERWRITECONFIG
    ...

    Linus Torvalds
     

25 Jun, 2006

5 commits

  • Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • I'm using TAGS generated from "make TAGS" to read the kernel source code.

    When I met a ifdef block

    #ifdef CONFIG_FOO
    ...
    #endif

    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: Masatake YAMATO
    Signed-off-by: Sam Ravnborg

    Masatake YAMATO
     
  • 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
    f=${f#./}
    echo "/* ${f%.symtypes}.o */"
    cat $f
    echo
    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
    next
    }
    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: Andreas Gruenbacher
    Signed-off-by: Sam Ravnborg

    Andreas Gruenbacher
     
  • 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: Sam Ravnborg

    Roman Zippel
     
  • 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: "Theodore Ts'o"
    Signed-off-by: Sam Ravnborg

    Theodore Ts'o
     

18 Jun, 2006

3 commits

  • 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: David Woodhouse

    David Woodhouse
     
  • 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
    Hacked about by David Woodhouse
    Reviewed and cleaned up by Sam Ravnborg

    Signed-off-by: David Woodhouse

    David Woodhouse
     
  • 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.

    Linus Torvalds
     

10 Jun, 2006

1 commit

  • 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: Sam Ravnborg

    Sam Ravnborg
     

09 Jun, 2006

6 commits

  • The binrpm-pkg target uses KERNELRELEASE when generated its .spec file.
    When binrpm-pkg was the first build target run in a tree it generated the
    .spec before kernel.release so the Version: tag in the .spec was empty.

    I don't know if this is the best fix, but binrpm-pkg works when we
    explicitly build kernel.release before descending into package-dir.

    Signed-off-by: Zach Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Zach Brown
     
  • Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     
  • If you set KCONFIG_OVERWRITECONFIG in environment, Kconfig will not break
    symlinks when .config is a symlink to somewhere else.

    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     
  • 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: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     
  • 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: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     
  • 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: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     

06 Jun, 2006

1 commit


25 May, 2006

1 commit