1. 19 10月, 2010 1 次提交
    • S
      ftrace: Remove recursion between recordmcount and scripts/mod/empty · d7b4d6de
      Steven Rostedt 提交于
      When DYNAMIC_FTRACE is enabled and we use the C version of recordmcount,
      all objects are run through the recordmcount program to create a
      separate section that stores all the callers of mcount.
      
      The build process has a special file: scripts/mod/empty.o. This is
      built from empty.c which is literally an empty file (except for a
      single comment). This file is used to find information about the target
      elf format, like endianness and word size.
      
      The problem comes up when we need to build recordmcount. The
      build process requires that empty.o is built first. The build rules
      for empty.o will try to execute recordmcount on the empty.o file.
      We get an error that recordmcount does not exist.
      
      To avoid this recursion, the build file will skip running recordmcount
      if the file that it is building is script/mod/empty.o.
      
      [ extra comment Suggested-by: Sam Ravnborg <sam@ravnborg.org> ]
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Tested-by: NIngo Molnar <mingo@elte.hu>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: linux-kbuild@vger.kernel.org
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      d7b4d6de
  2. 16 10月, 2010 1 次提交
  3. 15 10月, 2010 1 次提交
    • S
      ftrace/x86: Add support for C version of recordmcount · 72441cb1
      Steven Rostedt 提交于
      This patch adds the support for the C version of recordmcount and
      compile times show ~ 12% improvement.
      
      After verifying this works, other archs can add:
      
       HAVE_C_MCOUNT_RECORD
      
      in its Kconfig and it will use the C version of recordmcount
      instead of the perl version.
      
      Cc: <linux-arch@vger.kernel.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: linux-kbuild@vger.kernel.org
      Cc: John Reiser <jreiser@bitwagon.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      72441cb1
  4. 03 8月, 2010 2 次提交
    • S
      kbuild: allow assignment to {A,C}FLAGS_KERNEL on the command line · 80c00ba9
      Sam Ravnborg 提交于
      It is now possible to assign options to AS and CC
      on the command line - which is only used for built-in code.
      
      {A,C}FLAGS_KERNEL was used both in the top-level Makefile
      in the arch makefiles, thus users had no way to specify
      additional options to AS, CC without overriding
      the original value.
      
      Introduce a new set of variables KBUILD_{A,C}FLAGS_KERNEL
      that is used by arch specific files and free up
      {A,C}FLAGS_KERNEL so they can be assigned on
      the command line.
      
      All arch Makefiles that used the old variables has been updated.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      80c00ba9
    • S
      kbuild: allow assignment to {A,C,LD}FLAGS_MODULE on the command line · 6588169d
      Sam Ravnborg 提交于
      It is now possible to assign options to AS, CC and LD
      on the command line - which is only used when building modules.
      
      {A,C,LD}FLAGS_MODULE was all used both in the top-level Makefile
      in the arch makefiles, thus users had no way to specify
      additional options to AS, CC, LD when building modules
      without overriding the original value.
      
      Introduce a new set of variables KBUILD_{A,C,LD}FLAGS_MODULE
      that is used by arch specific files and free up
      {A,C,LD}FLAGS_MODULE so they can be assigned on
      the command line.
      
      All arch Makefiles that used the old variables has been updated.
      
      Note: Previously we had a MODFLAGS variable for both
      AS and CC. But in favour of consistency this was dropped.
      So in some cases arch Makefile has one assignmnet replaced by
      two assignmnets.
      
      Note2: MODFLAGS was not documented and is dropped
      without any notice. I do not expect much/any breakage
      from this.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Denys Vlasenko <vda.linux@googlemail.com>
      Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Acked-by: Mike Frysinger <vapier@gentoo.org> [blackfin]
      Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> [avr32]
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      6588169d
  5. 04 6月, 2010 1 次提交
    • D
      Makefile.build: make KBUILD_SYMTYPES work again · e26d6b83
      Don Zickus 提交于
      commit 37a8d9f6 tried to combine some
      duplicate code and accidentally broke how KBUILD_SYMTYPES worked
      
      This fixes the code to match the original intention by the author who
      originally added the code I believe.
      
      The fixes include:
      - removing extra whitespaces in the if-statements
      - moving the if-statement from around the -r to the -T
      - adding a second arg to cmd_gensymtypes to simplify the options passed
        to genksyms.
      
      Tested by instrumenting genksyms and seeing what options were passed in
      during a make, KBUILD_SYMTYPES make, and when a foo.symref was created.
      
      Everything compiled and looked ok.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      e26d6b83
  6. 02 2月, 2010 1 次提交
  7. 17 12月, 2009 1 次提交
  8. 21 9月, 2009 1 次提交
    • T
      kbuild: Don't define ALIGN and ENTRY when preprocessing linker scripts. · 42f29a25
      Tim Abbott 提交于
      Adding a reference to <linux/linkage.h> to x86's <asm/cache.h> causes
      the x86 linker script to have syntax errors, because the ALIGN and
      ENTRY keywords get redefined to the assembly implementations of those.
      One could fix this by adjusting the include structure, but I think any
      solution based on that approach would be fragile.
      
      Currently, it is impossible when writing a header to do something
      different for assembly files and linker scripts, even though there are
      clearly cases where one wants them to define macros differently for
      the two (ENTRY being an excellent example).
      So I think the right solution here is to introduce a new preprocessor
      definition, called LINKER_SCRIPT that is set along with __ASSEMBLY__
      for linker scripts, and to use that to not define ALIGN and ENTRY in
      linker scripts.
      I suspect we'll find other uses for this mechanism in
      the future.
      Signed-off-by: NTim Abbott <tabbott@ksplice.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      42f29a25
  9. 20 9月, 2009 3 次提交
    • S
      arm, cris, mips, sparc, powerpc, um, xtensa: fix build with bash 4.0 · 51b563fc
      Sam Ravnborg 提交于
      Albin Tonnerre <albin.tonnerre@free-electrons.com> reported:
      
          Bash 4 filters out variables which contain a dot in them.
          This happends to be the case of CPPFLAGS_vmlinux.lds.
          This is rather unfortunate, as it now causes
          build failures when using SHELL=/bin/bash to compile,
          or when bash happens to be used by make (eg when it's /bin/sh)
      
      Remove the common definition of CPPFLAGS_vmlinux.lds by
      pushing relevant stuff to either Makefile.build or the
      arch specific kernel/Makefile where we build the linker script.
      
      This is also nice cleanup as we move the information out where
      it is used.
      
      Notes for the different architectures touched:
      
      arm - we use an already exported symbol
      cris - we use a config symbol aleady available
             [Not build tested]
      mips - the jiffies complexity has moved to vmlinux.lds.S where we need it.
             Added a few variables to CPPFLAGS - they are only used by
             the linker script.
             [Not build tested]
      powerpc - removed assignment that is not needed
                [not build tested]
      sparc - simplified it using $(BITS)
      um - introduced a few new exported variables to deal with this
      xtensa - added options to CPP invocation
               [not build tested]
      
      Cc: Albin Tonnerre <albin.tonnerre@free-electrons.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Chris Zankel <chris@zankel.net>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      51b563fc
    • A
      kbuild: fail build if recordmcount.pl fails · 66a57062
      Andi Kleen 提交于
      When this script fails the build should fail too. Otherwise there
      are mysterious build failures later.
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      66a57062
    • A
      kbuild: echo the record_mcount command · c3c63b6b
      Andi Kleen 提交于
      I had some problems with record_mcount in the Makefile and it was hard
      to track down. Echo it by default to make it easier to diagnose.
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      c3c63b6b
  10. 19 4月, 2009 1 次提交
    • S
      kbuild: introduce subdir-ccflags-y · 720097d8
      Sam Ravnborg 提交于
      Following patch introduce support for setting options
      to gcc that has effect for current directory and all
      subdirectories.
      
      The typical use case are an architecture or a subsystem that
      decide to cover all files with -Werror.
      Today alpha, mips and sparc uses -Werror in almost all their
      Makefile- with subdir-ccflag-y it is now simpler to do so
      as only the top-level directories needs to be covered.
      
      Likewise if we decide to cover a full subsystem such
      as net/ with -Werror this is done by adding a single
      line to net/Makefile.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      720097d8
  11. 15 1月, 2009 1 次提交
  12. 14 1月, 2009 1 次提交
  13. 20 12月, 2008 2 次提交
    • J
      kbuild: strip generated symbols from *.ko · ad7a953c
      Jan Beulich 提交于
      This patch changes the way __crc_ symbols are being resolved from
      using ld to do so to using the assembler, thus allowing these symbols
      to be marked local (the linker creates then as global ones) and hence
      allow stripping (for modules) or ignoring (for vmlinux) them. While at
      this, also strip other generated symbols during module installation.
      
      One potentially debatable point is the handling of the flags passeed
      to gcc when translating the intermediate assembly file into an object:
      passing $(c_flags) unchanged doesn't work as gcc passes --gdwarf2 to
      gas whenever is sees any -g* option, even for -g0, and despite the
      fact that the compiler would have already produced all necessary debug
      info in the C->assembly translation phase. I took the approach of just
      filtering out all -g* options, but an alternative to such negative
      filtering might be to have a positive filter which might, in the ideal
      case allow just all the -Wa,* options to pass through.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      ad7a953c
    • S
      kbuild: simplify use of genksyms · 37a8d9f6
      Sam Ravnborg 提交于
      Avoid duplicating long list of options in two places
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      37a8d9f6
  14. 04 12月, 2008 1 次提交
    • A
      genksyms: track symbol checksum changes · 64e6c1e1
      Andreas Gruenbacher 提交于
      Sometimes it is preferable to avoid changes of exported symbol checksums
      (to avoid breaking externally provided modules).  When a checksum change
      occurs, it can be hard to figure out what caused this change: underlying
      types may have changed, or additional type information may simply have
      become available at the point where a symbol is exported.
      
      Add a new --reference option to genksyms which allows it to report why
      checksums change, based on the type information dumps it creates with the
      --dump-types flag.  Genksyms will read in such a dump from a previous run,
      and report which symbols have changed (and why).
      
      The behavior can be controlled for an entire build as follows: If
      KBUILD_SYMTYPES is set, genksyms uses --dump-types to produce *.symtypes
      dump files.  If any *.symref files exist, those will be used as the
      reference to check against.  If KBUILD_PRESERVE is set, checksum changes
      will fail the build.
      Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      64e6c1e1
  15. 31 10月, 2008 1 次提交
  16. 23 10月, 2008 1 次提交
  17. 14 10月, 2008 3 次提交
    • A
      kbuild: ftrace: don't assume that scripts/recordmcount.pl is executable · b3a32041
      Andrew Morton 提交于
      CHK     include/linux/version.h
        CHK     include/linux/utsrelease.h
        CC      scripts/mod/empty.o
      /bin/sh: /usr/src/25/scripts/recordmcount.pl: Permission denied
      
      We shouldn't assume that files have their `x' bits set.  There are various
      ways in which file permissions get lost, including use of patch(1).
      
      It might not be correct to assume that perl lives in $PATH?
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b3a32041
    • J
      ftrace: fix build problem with CONFIG_FTRACE · 6a4917e3
      Jeremy Fitzhardinge 提交于
      I'm seeing when I use separate src/build dirs:
      
      make[3]: *** [arch/x86/kernel/time_32.o] Error 1
      /bin/sh: scripts/recordmcount.pl: No such file or directory
      make[3]: *** [arch/x86/kernel/irq_32.o] Error 1
      /bin/sh: scripts/recordmcount.pl: No such file or directory
      make[3]: *** [arch/x86/kernel/ldt.o] Error 1
      /bin/sh: scripts/recordmcount.pl: No such file or directory
      make[3]: *** [arch/x86/kernel/i8259.o] Error 1
      /bin/sh: scripts/recordmcount.pl: No such file or directory
      
      This fixes it.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6a4917e3
    • S
      ftrace: create __mcount_loc section · 8da3821b
      Steven Rostedt 提交于
      This patch creates a section in the kernel called "__mcount_loc".
      This will hold a list of pointers to the mcount relocation for
      each call site of mcount.
      
      For example:
      
      objdump -dr init/main.o
      [...]
      Disassembly of section .text:
      
      0000000000000000 <do_one_initcall>:
         0:   55                      push   %rbp
      [...]
      000000000000017b <init_post>:
       17b:   55                      push   %rbp
       17c:   48 89 e5                mov    %rsp,%rbp
       17f:   53                      push   %rbx
       180:   48 83 ec 08             sub    $0x8,%rsp
       184:   e8 00 00 00 00          callq  189 <init_post+0xe>
                              185: R_X86_64_PC32      mcount+0xfffffffffffffffc
      [...]
      
      We will add a section to point to each function call.
      
         .section __mcount_loc,"a",@progbits
      [...]
         .quad .text + 0x185
      [...]
      
      The offset to of the mcount call site in init_post is an offset from
      the start of the section, and not the start of the function init_post.
      The mcount relocation is at the call site 0x185 from the start of the
      .text section.
      
        .text + 0x185  == init_post + 0xa
      
      We need a way to add this __mcount_loc section in a way that we do not
      lose the relocations after final link.  The .text section here will
      be attached to all other .text sections after final link and the
      offsets will be meaningless.  We need to keep track of where these
      .text sections are.
      
      To do this, we use the start of the first function in the section.
      do_one_initcall.  We can make a tmp.s file with this function as a reference
      to the start of the .text section.
      
         .section __mcount_loc,"a",@progbits
      [...]
         .quad do_one_initcall + 0x185
      [...]
      
      Then we can compile the tmp.s into a tmp.o
      
        gcc -c tmp.s -o tmp.o
      
      And link it into back into main.o.
      
        ld -r main.o tmp.o -o tmp_main.o
        mv tmp_main.o main.o
      
      But we have a problem.  What happens if the first function in a section
      is not exported, and is a static function. The linker will not let
      the tmp.o use it.  This case exists in main.o as well.
      
      Disassembly of section .init.text:
      
      0000000000000000 <set_reset_devices>:
         0:   55                      push   %rbp
         1:   48 89 e5                mov    %rsp,%rbp
         4:   e8 00 00 00 00          callq  9 <set_reset_devices+0x9>
                              5: R_X86_64_PC32        mcount+0xfffffffffffffffc
      
      The first function in .init.text is a static function.
      
      00000000000000a8 t __setup_set_reset_devices
      000000000000105f t __setup_str_set_reset_devices
      0000000000000000 t set_reset_devices
      
      The lowercase 't' means that set_reset_devices is local and is not exported.
      If we simply try to link the tmp.o with the set_reset_devices we end
      up with two symbols: one local and one global.
      
       .section __mcount_loc,"a",@progbits
       .quad set_reset_devices + 0x10
      
      00000000000000a8 t __setup_set_reset_devices
      000000000000105f t __setup_str_set_reset_devices
      0000000000000000 t set_reset_devices
                       U set_reset_devices
      
      We still have an undefined reference to set_reset_devices, and if we try
      to compile the kernel, we will end up with an undefined reference to
      set_reset_devices, or even worst, it could be exported someplace else,
      and then we will have a reference to the wrong location.
      
      To handle this case, we make an intermediate step using objcopy.
      We convert set_reset_devices into a global exported symbol before linking
      it with tmp.o and set it back afterwards.
      
      00000000000000a8 t __setup_set_reset_devices
      000000000000105f t __setup_str_set_reset_devices
      0000000000000000 T set_reset_devices
      
      00000000000000a8 t __setup_set_reset_devices
      000000000000105f t __setup_str_set_reset_devices
      0000000000000000 T set_reset_devices
      
      00000000000000a8 t __setup_set_reset_devices
      000000000000105f t __setup_str_set_reset_devices
      0000000000000000 t set_reset_devices
      
      Now we have a section in main.o called __mcount_loc that we can place
      somewhere in the kernel using vmlinux.ld.S and access it to convert
      all these locations that call mcount into nops before starting SMP
      and thus, eliminating the need to do this with kstop_machine.
      
      Note, A well documented perl script (scripts/recordmcount.pl) is used
      to do all this in one location.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8da3821b
  18. 26 4月, 2008 1 次提交
  19. 29 1月, 2008 2 次提交
    • S
      kbuild: introduce new option to enhance section mismatch analysis · 91341d4b
      Sam Ravnborg 提交于
      Setting the option DEBUG_SECTION_MISMATCH will
      report additional section mismatch'es but this
      should in the end makes it possible to get rid of
      all of them.
      
      See help text in lib/Kconfig.debug for details.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      91341d4b
    • T
      kbuild: implement modules.order · 551559e1
      Tejun Heo 提交于
      When multiple built-in modules (especially drivers) provide the same
      capability, they're prioritized by link order specified by the order
      listed in Makefile.  This implicit ordering is lost for loadable
      modules.
      
      When driver modules are loaded by udev, what comes first in
      modules.alias file is selected.  However, the order in this file is
      indeterministic (depends on filesystem listing order of installed
      modules).  This causes confusion.
      
      The solution is two-parted.  This patch updates kbuild such that it
      generates and installs modules.order which contains the name of
      modules ordered according to Makefile.  The second part is update to
      depmod such that it generates output files according to this file.
      
      Note that both obj-y and obj-m subdirs can contain modules and
      ordering information between those two are lost from beginning.
      Currently obj-y subdirs are put before obj-m subdirs.
      
      Sam Ravnborg cleaned up Makefile modifications and suggested using awk
      to remove duplicate lines from modules.order instead of using separate
      C program.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Cc: Bill Nottingham <notting@redhat.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Jon Masters <jonathan@jonmasters.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      551559e1
  20. 16 10月, 2007 1 次提交
    • S
      kbuild: introduce ccflags-y, asflags-y and ldflags-y · f77bf014
      Sam Ravnborg 提交于
      Introduce ccflags-y, asflags-y and ldflags-y so we soon can
      deprecate use of EXTRA_CFLAGS, EXTRA_AFLAGS and EXTRA_LDFLAGS.
      This patch does not touch any in-tree users - thats next round.
      Lets get this committed first and then fix the users of the
      soon to be deprecated variants next.
      
      The rationale behind this change is to introduce support for
      makefile fragments like:
      
      ccflags-$(CONFIG_WHATEVER_DEBUG) := -DDEBUG
      
      As a replacement for the uglier:
      ifeq ($(CONFIG_WHATEVER_DEBUG),y)
              EXTRA_CFLAGS := -DDEBUG
      endif
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      f77bf014
  21. 15 10月, 2007 1 次提交
    • S
      kbuild: check for wrong use of CFLAGS · 0c53c8e6
      Sam Ravnborg 提交于
      External modules have in a few cases modifed gcc option
      by modifying CFLAGS. This has never been documented and
      was a bad practice.
      With the check to use KBUILD_CFLAGS it will no longer work
      so we better error out and tell what was wrong as a service
      to the external module users.
      
      This check can be overruled if
      KBUILD_NOPEDANTIC is set to something.
      Addid this possibility may allow older external
      module to build without any code modifications but potentially
      only loosing some un-important gcc options.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      0c53c8e6
  22. 13 10月, 2007 2 次提交
  23. 26 7月, 2007 1 次提交
  24. 17 7月, 2007 1 次提交
  25. 06 5月, 2007 1 次提交
  26. 25 9月, 2006 1 次提交
  27. 01 7月, 2006 1 次提交
    • S
      kbuild: fix ia64 breakage after introducing make -rR · 5e8d780d
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      5e8d780d
  28. 27 6月, 2006 1 次提交
    • L
      Revert "kbuild: fix make -rR breakage" · d38b6968
      Linus Torvalds 提交于
      This reverts commit e5c44fd8.
      
      Thanks to Daniel Ritz and Michal Piotrowski for noticing the problem.
      
      Daniel says:
      
        "[The] reason is a recent change that made modules always shows as
         module.mod.  it breaks modprobe and probably many scripts..besides
         lsmod looking horrible
      
         stuff like this in modprobe.conf:
              install pcmcia_core /sbin/modprobe --ignore-install pcmcia_core; /sbin/modprobe pcmcia
         makes modprobe fork/exec endlessly calling itself...until oom
         interrupts it"
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d38b6968
  29. 25 6月, 2006 2 次提交
    • A
      kbuild: support for %.symtypes files · 15fde675
      Andreas Gruenbacher 提交于
      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: NAndreas Gruenbacher <agruen@suse.de>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      15fde675
    • S
      kbuild: fix make -rR breakage · e5c44fd8
      Sam Ravnborg 提交于
      make failed to supply the filename when using make -rR and using $(*F)
      to get target filename without extension.
      This bug was not reproduceable in small scale but using:
      $(basename $(notdir $@)) fixes it with same functionality.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      e5c44fd8
  30. 09 6月, 2006 1 次提交
    • R
      kconfig: fix .config dependencies · c955ccaf
      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: NRoman Zippel <zippel@linux-m68k.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      c955ccaf
  31. 13 3月, 2006 1 次提交