26 Mar, 2006

4 commits

  • This patch puts the infrastructure in place to allow for a reordering of
    functions based inside the vmlinux. The general idea is that it is possible
    to put all "common" functions into the first 2Mb of the code, so that they
    are covered by one TLB entry. This as opposed to the current situation where
    a typical vmlinux covers about 3.5Mb (on x86-64) and thus 2 TLB entries.

    This is done by enabling the -ffunction-sections flag in gcc, which puts
    each function in its own ELF section, so that the linker can then order them
    in a way defined by the linker script.

    As per previous discussions, Linus said he wanted a "static" list for this,
    eg a list provided by the kernel tarbal, so that most people have the same
    ordering at least. A script is provided to create this list based on
    readprofile(1) output. The included list is provisional, and entirely biased
    on my own testbox and me running a few kernel compiles and some other
    things.

    I think that to get to a better list we need to invite people to submit
    their own profiles, and somehow add those all up and base the final list on
    that. I'm willing to do that effort if this is ends up being the prefered
    approach. Such an effort probably needs to be repeated like once a year or
    so to adopt to the changing nature of the kernel.

    Made it a CONFIG with default n because it increases link times
    dramatically.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild: (46 commits)
    kbuild: remove obsoleted scripts/reference_* files
    kbuild: fix make help & make *pkg
    kconfig: fix time ordering of writes to .kconfig.d and include/linux/autoconf.h
    Kconfig: remove the CONFIG_CC_ALIGN_* options
    kbuild: add -fverbose-asm to i386 Makefile
    kbuild: clean-up genksyms
    kbuild: Lindent genksyms.c
    kbuild: fix genksyms build error
    kbuild: in makefile.txt note that Makefile is preferred name for kbuild files
    kbuild: replace PHONY with FORCE
    kbuild: Fix bug in crc symbol generating of kernel and modules
    kbuild: change kbuild to not rely on incorrect GNU make behavior
    kbuild: when warning symbols exported twice now tell user this is the problem
    kbuild: fix make dir/file.xx when asm symlink is missing
    kbuild: in the section mismatch check try harder to find symbols
    kbuild: fix section mismatch check for unwind on IA64
    kbuild: kill false positives from section mismatch warnings for powerpc
    kbuild: kill trailing whitespace in modpost & friends
    kbuild: small update of allnoconfig description
    kbuild: make namespace.pl CROSS_COMPILE happy
    ...

    Trivial conflict in arch/ppc/boot/Makefile manually fixed up

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (21 commits)
    BUG_ON() Conversion in drivers/video/
    BUG_ON() Conversion in drivers/parisc/
    BUG_ON() Conversion in drivers/block/
    BUG_ON() Conversion in sound/sparc/cs4231.c
    BUG_ON() Conversion in drivers/s390/block/dasd.c
    BUG_ON() Conversion in lib/swiotlb.c
    BUG_ON() Conversion in kernel/cpu.c
    BUG_ON() Conversion in ipc/msg.c
    BUG_ON() Conversion in block/elevator.c
    BUG_ON() Conversion in fs/coda/
    BUG_ON() Conversion in fs/binfmt_elf_fdpic.c
    BUG_ON() Conversion in input/serio/hil_mlc.c
    BUG_ON() Conversion in md/dm-hw-handler.c
    BUG_ON() Conversion in md/bitmap.c
    The comment describing how MS_ASYNC works in msync.c is confusing
    rcu: undeclared variable used in documentation
    fix typos "wich" -> "which"
    typo patch for fs/ufs/super.c
    Fix simple typos
    tabify drivers/char/Makefile
    ...

    Linus Torvalds
     
  • This fixes coverity bugs #398 and #397

    Signed-off-by: Jesper Juhl
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     

25 Mar, 2006

1 commit


24 Mar, 2006

3 commits


21 Mar, 2006

2 commits


17 Mar, 2006

1 commit

  • Jiri Benc reported that modpost would stop with SIGABRT if
    used with long filepaths.
    The error looked like:
    > Building modules, stage 2.
    > MODPOST
    > *** glibc detected *** scripts/mod/modpost: realloc(): invalid next size:
    +0x0809f588 ***
    > [...]

    Fix this by allocating at least the required memory + SZ bytes each time.
    Before we sometimes ended up allocating too little memory resuting in the
    glibc detected bug above. Based on patch originally submitted by: Jiri
    Benc

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

    Sam Ravnborg
     

13 Mar, 2006

5 commits


09 Mar, 2006

2 commits


07 Mar, 2006

1 commit


06 Mar, 2006

1 commit

  • The kbuild system takes advantage of an incorrect behavior in GNU make.
    Once this behavior is fixed, all files in the kernel rebuild every time,
    even if nothing has changed. This patch ensures kbuild works with both
    the incorrect and correct behaviors of GNU make.

    For more details on the incorrect behavior, see:

    http://lists.gnu.org/archive/html/bug-make/2006-03/msg00003.html

    Changes in this patch:
    - Keep all targets that are to be marked .PHONY in a variable, PHONY.
    - Add .PHONY: $(PHONY) to mark them properly.
    - Remove any $(PHONY) files from the $? list when determining whether
    targets are up-to-date or not.

    Signed-off-by: Paul Smith
    Signed-off-by: Sam Ravnborg

    Paul Smith
     

05 Mar, 2006

4 commits


03 Mar, 2006

1 commit


27 Feb, 2006

4 commits

  • 'allnoconfig' is described by 'make help' as a "minimal config", that's not
    strictly correct. To be pedantic, a minimal config would be one where
    EMBEDDED was set to Y and most things therein disabled etc. Simply
    answering 'no' to all options does not give a minimal config.
    A better description of allnoconfig is that it answers all options with 'no'.

    This patch updates the description.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Sam Ravnborg

    Jesper Juhl
     
  • Using the fixed path to /usr/bin/{nm,objdump} does not allow
    CROSS_COMPILE environments to use namespace.pl. This patch causes
    namespace.pl to use $NM and $OBJDUMP if defined or fall back to the nm
    and objdump found in the path.

    Signed-off-by: Aaron Brooks
    Signed-off-by: Sam Ravnborg

    Aaron Brooks
     
  • In several cases the section mismatch check triggered false warnings.
    Following patch introduce a whitelist to 'false positives' are not warned of.
    Two types of patterns are recognised:
    1) Typical case when a module parameter is _initdata
    2) When a function pointer is assigned to a driver structure

    In both patterns we rely on the actual name of the variable assigned

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • It seems popular to protect your work with copyright, so I decided to do
    so for modpost which I patch a great deal atm.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

23 Feb, 2006

2 commits

  • Andrew Morton reported a number of false positives for ia64 - like these:
    WARNING: drivers/acpi/button.o - Section mismatch: reference to .init.text: from .IA_64.unwind.init.text after '' (at offset 0x0)
    WARNING: drivers/acpi/button.o - Section mismatch: reference to .exit.text: from .IA_64.unwind.exit.text after '' (at offset 0x0)
    WARNING: drivers/acpi/processor.o - Section mismatch: reference to .init.text: from .IA_64.unwind after '' (at offset 0x1e8)

    They are all false positives - or at least the .c code looks OK.
    It is not known why sometimes a section name is appended and sometimes not.

    Fix is to accept references from all sections that includes "unwind." in the name.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • The kernel now requires that CC be 3.1.0 or higher. But we shouldn't place
    that requirement upon HOSTCC unless we really need to. Fixes my ia64 problem.

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

    akpm@osdl.org
     

19 Feb, 2006

9 commits

  • Try to look up the symbol that is referenced. Include the symbol
    name in the warning message.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Do not try to look up section name until we know it is not a special
    section. Otherwise we will address outside legal space and segfault.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • A combination of calling modpost with option -a and MODVERDIR undefined
    caused segmentation fault. So provide a default value and accept the
    error messages it generates instead.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Noted by Olaf Hering

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • checkconfig.pl is no longer needed now that autoconf.h is automatically
    included. Remove it and all references to it.

    Signed-off-by: Brian Gerst
    Signed-off-by: Sam Ravnborg

    Brian Gerst
     
  • With the current way of generating the Makefile in the output directory
    for builds outside of the source tree, specifying real targets (rather
    than phony ones) doesn't work in an already (partially) built tree, as
    the stub Makefile doesn't have any dependency information available.
    Thus, all targets where files may actually exist must be listed
    explicitly and, due to what I'd call a make misbehavior, directory
    targets must then also be special cased.

    Signed-Off-By: Jan Beulich
    Signed-off-by: Sam Ravnborg

    Jan Beulich
     
  • While the recent change to also escape # symbols when storing C-file
    compilation command lines was helpful, it should be in effect for all
    command lines, as much as the dollar escaping should be in effect for
    C-source compilation commands. Additionally, for better readability and
    maintenance, consolidating all the escaping (single quotes, dollars,
    and now sharps) was also desirable.

    Signed-Off-By: Jan Beulich
    Signed-off-by: Sam Ravnborg

    Jan Beulich
     
  • Move $(CC) support functions to Kbuild.include so they are available
    in the kbuild files.
    In addition the following was done:
    o as-option documented in Documentation/kbuild/makefiles.txt
    o Moved documentation to new section to match
    new scope of functions
    o added cc-ifversion used to conditionally select a text string
    dependent on actual $(CC) version
    o documented cc-ifversion
    o change so Kbuild.include is read before the kbuild file

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Section mismatch is identified as references to .init*
    sections from non .init sections. And likewise references
    to .exit.* sections outside .exit sections.

    .init.* sections are discarded after a module is initialized
    and references to .init.* sections are oops candidates.
    .exit.* sections are discarded when a module is built-in and
    thus references to .exit are also oops candidates.

    The checks were possible to do using 'make buildcheck' which
    called the two perl scripts: reference_discarded.pl and
    reference_init.pl. This patch just moves the same functionality
    inside modpost and the scripts are then obsoleted.
    They will though be kept for a while so users can do double
    checks - but note that some .o files are skipped by the perl scripts
    so result is not 1:1.
    All credit for the concept goes to Keith Owens who implemented
    the original perl scrips - this patch just moves it to modpost.

    Compared to the perl script the implmentation in modpost will be run
    for each kernel build - thus catching the error much sooner, but
    the downside is that the individual .o file are not always identified.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg