Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 25 May 2011 19:04:15 +0000 (12:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 25 May 2011 19:04:15 +0000 (12:04 -0700)
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
  export_report: use warn() to issue WARNING, so they go to stderr
  export_report: sort SECTION 2 output
  export_report: do collectcfiles work in perl itself
  kbuild: make versioncheck work in KBUILD_OUTDIR
  kbuild: make includecheck work in KBUILD_OUTDIR
  kbuild: make headerdep work in KBUILD_OUTDIR
  kbuild: add targets to PHONY
  kbuild: don't warn about include/linux/version.h not including itself
  eradicate bashisms in scripts/patch-kernel

1  2 
Makefile

diff --combined Makefile
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 39
 -EXTRAVERSION = -rc1
 +EXTRAVERSION =
  NAME = Flesh-Eating Bats with Fangs
  
  # *DOCUMENTATION*
@@@ -103,7 -103,7 +103,7 @@@ ifeq ("$(origin O)", "command line"
  endif
  
  ifeq ("$(origin W)", "command line")
 -  export KBUILD_ENABLE_EXTRA_GCC_CHECKS := 1
 +  export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
  endif
  
  # That's our default target when none is given on the command line
@@@ -349,8 -349,7 +349,8 @@@ CFLAGS_GCOV        = -fprofile-arcs -ftest-cov
  
  # Use LINUXINCLUDE when you must reference the include/ directory.
  # Needed to be compatible with the O= option
 -LINUXINCLUDE    := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
 +LINUXINCLUDE    := -I$(srctree)/arch/$(hdr-arch)/include \
 +                   -Iarch/$(hdr-arch)/include/generated -Iinclude \
                     $(if $(KBUILD_SRC), -I$(srctree)/include) \
                     -include include/generated/autoconf.h
  
@@@ -383,7 -382,6 +383,7 @@@ export KBUILD_CFLAGS CFLAGS_KERNEL CFLA
  export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
  export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
  export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
 +export KBUILD_ARFLAGS
  
  # When compiling out-of-tree modules, put MODVERDIR in the module
  # tree rather than in the kernel tree. The kernel tree might
@@@ -418,12 -416,6 +418,12 @@@ ifneq ($(KBUILD_SRC),
            $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
  endif
  
 +# Support for using generic headers in asm-generic
 +PHONY += asm-generic
 +asm-generic:
 +      $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
 +                  obj=arch/$(SRCARCH)/include/generated/asm
 +
  # To make sure we do not include .config for any of the *config targets
  # catch them early, and hand them over to scripts/kconfig/Makefile
  # It is allowed to specify more targets when calling make, including
@@@ -567,10 -559,6 +567,10 @@@ ifndef CONFIG_CC_STACKPROTECTO
  KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)
  endif
  
 +# This warning generated too much noise in a regular build.
 +# Use make W=1 to enable this warning (see scripts/Makefile.build)
 +KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
 +
  ifdef CONFIG_FRAME_POINTER
  KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
  else
@@@ -616,7 -604,7 +616,7 @@@ CHECKFLAGS     += $(NOSTDINC_FLAGS
  KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
  
  # disable pointer signed / unsigned warnings in gcc 4.0
 -KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
 +KBUILD_CFLAGS += $(call cc-disable-warning, pointer-sign)
  
  # disable invalid "can't wrap" optimizations for signed / pointers
  KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
  # conserve stack if available
  KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
  
 +# use the deterministic mode of AR if available
 +KBUILD_ARFLAGS := $(call ar-option,D)
 +
  # check for 'asm goto'
  ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y)
        KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
@@@ -812,17 -797,15 +812,17 @@@ ifdef CONFIG_KALLSYM
  # o The correct .tmp_kallsyms2.o is linked into the final vmlinux.
  # o Verify that the System.map from vmlinux matches the map from
  #   .tmp_vmlinux2, just in case we did not generate kallsyms correctly.
 -# o If CONFIG_KALLSYMS_EXTRA_PASS is set, do an extra pass using
 +# o If 'make KALLSYMS_EXTRA_PASS=1" was used, do an extra pass using
  #   .tmp_vmlinux3 and .tmp_kallsyms3.o.  This is only meant as a
  #   temporary bypass to allow the kernel to be built while the
  #   maintainers work out what went wrong with kallsyms.
  
 -ifdef CONFIG_KALLSYMS_EXTRA_PASS
 -last_kallsyms := 3
 -else
  last_kallsyms := 2
 +
 +ifdef KALLSYMS_EXTRA_PASS
 +ifneq ($(KALLSYMS_EXTRA_PASS),0)
 +last_kallsyms := 3
 +endif
  endif
  
  kallsyms.o := .tmp_kallsyms$(last_kallsyms).o
@@@ -833,8 -816,7 +833,8 @@@ define verify_kallsym
          $(cmd_sysmap) .tmp_vmlinux$(last_kallsyms) .tmp_System.map
        $(Q)cmp -s System.map .tmp_System.map ||                             \
                (echo Inconsistent kallsyms data;                            \
 -               echo Try setting CONFIG_KALLSYMS_EXTRA_PASS;                \
 +               echo This is a bug - please report about it;                \
 +               echo Try "make KALLSYMS_EXTRA_PASS=1" as a workaround;      \
                 rm .tmp_kallsyms* ; /bin/false )
  endef
  
@@@ -965,7 -947,7 +965,7 @@@ ifneq ($(KBUILD_SRC),
  endif
  
  # prepare2 creates a makefile if using a separate output directory
 -prepare2: prepare3 outputmakefile
 +prepare2: prepare3 outputmakefile asm-generic
  
  prepare1: prepare2 include/linux/version.h include/generated/utsrelease.h \
                     include/config/auto.conf
@@@ -1009,7 -991,8 +1009,8 @@@ include/generated/utsrelease.h: include
  
  PHONY += headerdep
  headerdep:
-       $(Q)find include/ -name '*.h' | xargs --max-args 1 scripts/headerdep.pl
+       $(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \
+       $(srctree)/scripts/headerdep.pl -I$(srctree)/include
  
  # ---------------------------------------------------------------------------
  
@@@ -1039,7 -1022,7 +1040,7 @@@ hdr-inst := -rR -f $(srctree)/scripts/M
  hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm)
  
  PHONY += __headers
 -__headers: include/linux/version.h scripts_basic FORCE
 +__headers: include/linux/version.h scripts_basic asm-generic FORCE
        $(Q)$(MAKE) $(build)=scripts build_unifdef
  
  PHONY += headers_install_all
@@@ -1154,8 -1137,7 +1155,8 @@@ CLEAN_FILES +=  vmlinux System.map 
                  .tmp_kallsyms* .tmp_version .tmp_vmlinux* .tmp_System.map
  
  # Directories & files removed with 'make mrproper'
 -MRPROPER_DIRS  += include/config usr/include include/generated
 +MRPROPER_DIRS  += include/config usr/include include/generated          \
 +                  arch/*/include/generated
  MRPROPER_FILES += .config .config.old .version .old_version             \
                    include/linux/version.h                               \
                  Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS
@@@ -1286,12 -1268,7 +1287,12 @@@ help
        @echo  '  make O=dir [targets] Locate all output files in "dir", including .config'
        @echo  '  make C=1   [targets] Check all c source with $$CHECK (sparse by default)'
        @echo  '  make C=2   [targets] Force check of all c source with $$CHECK'
 -      @echo  '  make W=1   [targets] Enable extra gcc checks'
 +      @echo  '  make W=n   [targets] Enable extra gcc checks, n=1,2,3 where'
 +      @echo  '                1: warnings which may be relevant and do not occur too often'
 +      @echo  '                2: warnings which occur quite often but may still be relevant'
 +      @echo  '                3: more obscure warnings, can most likely be ignored'
 +      @echo  '                Multiple levels can be combined with W=12 or W=123'
 +      @echo  '  make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
        @echo  ''
        @echo  'Execute "make" or "make all" to build all targets marked with [*] '
        @echo  'For further info see the ./README file'
@@@ -1314,7 -1291,6 +1315,7 @@@ $(help-board-dirs): help-%
  # Documentation targets
  # ---------------------------------------------------------------------------
  %docs: scripts_basic FORCE
 +      $(Q)$(MAKE) $(build)=scripts build_docproc
        $(Q)$(MAKE) $(build)=Documentation/DocBook $@
  
  else # KBUILD_EXTMOD
@@@ -1399,7 -1375,7 +1400,7 @@@ endif # KBUILD_EXTMO
  clean: $(clean-dirs)
        $(call cmd,rmdirs)
        $(call cmd,rmfiles)
 -      @find $(or $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
 +      @find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
                \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
                -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
                -o -name '*.symtypes' -o -name 'modules.order' \
@@@ -1417,13 -1393,15 +1418,15 @@@ tags TAGS cscope gtags: FORC
  # Scripts to check various things for consistency
  # ---------------------------------------------------------------------------
  
+ PHONY += includecheck versioncheck coccicheck namespacecheck export_report
  includecheck:
-       find * $(RCS_FIND_IGNORE) \
+       find $(srctree)/* $(RCS_FIND_IGNORE) \
                -name '*.[hcS]' -type f -print | sort \
                | xargs $(PERL) -w $(srctree)/scripts/checkincludes.pl
  
  versioncheck:
-       find * $(RCS_FIND_IGNORE) \
+       find $(srctree)/* $(RCS_FIND_IGNORE) \
                -name '*.[hcS]' -type f -print | sort \
                | xargs $(PERL) -w $(srctree)/scripts/checkversion.pl