Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6948385c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (25 commits)
  setlocalversion: do not describe if there is nothing to describe
  kconfig: fix typos: "Suport" -> "Support"
  kconfig: make defconfig is no longer chatty
  kconfig: make oldconfig is now less chatty
  kconfig: speed up all*config + randconfig
  kconfig: set all new symbols automatically
  kconfig: add diffconfig utility
  kbuild: remove Module.markers during mrproper
  kbuild: sparse needs CF not CHECKFLAGS
  kernel-doc: handle/strip __init
  vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section
  init: fix URL of "The GNU Accounting Utilities"
  kbuild: add arch/$ARCH/include to search path
  kbuild: asm symlink support for arch/$ARCH/include
  kbuild: support arch/$ARCH/include for tags, cscope
  kbuild: prepare headers_* for arch/$ARCH/include
  kbuild: install all headers when arch is changed
  kbuild: make clean removes *.o.* as well
  kbuild: optimize headers_* targets
  kbuild: only one call for include/ in make headers_*
  ...
parents 7a76d892 56b2f070
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -73,10 +73,10 @@ recompiled, or use "make C=2" to run sparse on the files whether they need to
be recompiled or not.  The latter is a fast way to check the whole tree if you
have already built it.

The optional make variable CHECKFLAGS can be used to pass arguments to sparse.
The build system passes -Wbitwise to sparse automatically.  To perform
endianness checks, you may define __CHECK_ENDIAN__:
The optional make variable CF can be used to pass arguments to sparse.  The
build system passes -Wbitwise to sparse automatically.  To perform endianness
checks, you may define __CHECK_ENDIAN__:

        make C=2 CHECKFLAGS="-D__CHECK_ENDIAN__"
        make C=2 CF="-D__CHECK_ENDIAN__"

These checks are disabled by default as they generate a host of warnings.
+1 −2
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ $(obj)/$(bounds-file): kernel/bounds.s Kbuild
# 2) Generate asm-offsets.h
#

offsets-file := include/asm-$(SRCARCH)/asm-offsets.h
offsets-file := include/asm/asm-offsets.h

always  += $(offsets-file)
targets += $(offsets-file)
@@ -81,7 +81,6 @@ arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c \
	$(call if_changed_dep,cc_s_c)

$(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s Kbuild
	$(Q)mkdir -p $(dir $@)
	$(call cmd,offsets)

#####
+70 −45
Original line number Diff line number Diff line
@@ -205,6 +205,9 @@ ifeq ($(ARCH),x86_64)
        SRCARCH := x86
endif

# Where to locate arch specific headers
hdr-arch       := $(SRCARCH)

KCONFIG_CONFIG	?= .config

# SHELL used by kbuild
@@ -326,6 +329,7 @@ AFLAGS_KERNEL =
# Needed to be compatible with the O= option
LINUXINCLUDE    := -Iinclude \
                   $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \
                   -I$(srctree)/arch/$(hdr-arch)/include               \
                   -include include/linux/autoconf.h

KBUILD_CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE)
@@ -922,7 +926,9 @@ ifneq ($(KBUILD_SRC),)
		/bin/false; \
	fi;
	$(Q)if [ ! -d include2 ]; then mkdir -p include2; fi;
	$(Q)ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm
	$(Q)if [ -e $(srctree)/include/asm-$(SRCARCH)/system.h ]; then  \
	    ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm;     \
	    fi
endif

# prepare2 creates a makefile if using a separate output directory
@@ -948,22 +954,34 @@ export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)

# The asm symlink changes when $(ARCH) changes.
# Detect this and ask user to run make mrproper

include/asm: FORCE
	$(Q)set -e; asmlink=`readlink include/asm | cut -d '-' -f 2`;   \
define check-symlink
	set -e;                                                            \
	if [ -L include/asm ]; then                                        \
		asmlink=`readlink include/asm | cut -d '-' -f 2`;          \
		if [ "$$asmlink" != "$(SRCARCH)" ]; then                   \
			echo "ERROR: the symlink $@ points to asm-$$asmlink but asm-$(SRCARCH) was expected"; \
			echo "       set ARCH or save .config and run 'make mrproper' to fix it";             \
			exit 1;                                            \
		fi;                                                        \
	else                                                            \
	fi
endef

# We create the target directory of the symlink if it does
# not exist so the test in chack-symlink works and we have a
# directory for generated filesas used by some architectures.
define create-symlink
	if [ ! -L include/asm ]; then                                      \
			echo '  SYMLINK $@ -> include/asm-$(SRCARCH)';     \
		if [ ! -d include ]; then                               \
			mkdir -p include;                               \
			if [ ! -d include/asm-$(SRCARCH) ]; then           \
				mkdir -p include/asm-$(SRCARCH);           \
			fi;                                                \
			ln -fsn asm-$(SRCARCH) $@;                         \
	fi
endef

include/asm: FORCE
	$(Q)$(check-symlink)
	$(Q)$(create-symlink)

# Generate some files
# ---------------------------------------------------------------------------
@@ -1010,36 +1028,43 @@ firmware_install: FORCE

# ---------------------------------------------------------------------------
# Kernel headers
INSTALL_HDR_PATH=$(objtree)/usr
export INSTALL_HDR_PATH

HDRFILTER=generic i386 x86_64
HDRARCHES=$(filter-out $(HDRFILTER),$(patsubst $(srctree)/include/asm-%/Kbuild,%,$(wildcard $(srctree)/include/asm-*/Kbuild)))
#Default location for installed headers
export INSTALL_HDR_PATH = $(objtree)/usr

PHONY += headers_install_all
headers_install_all: include/linux/version.h scripts_basic FORCE
hdr-inst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
# Find out where the Kbuild file is located to support
# arch/$(ARCH)/include/asm
hdr-dir = $(strip                                                         \
          $(if $(wildcard $(srctree)/arch/$(hdr-arch)/include/asm/Kbuild), \
               arch/$(hdr-arch)/include/asm, include/asm-$(hdr-arch)))

# If we do an all arch process set dst to asm-$(hdr-arch)
hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm)

PHONY += __headers
__headers: include/linux/version.h scripts_basic FORCE
	$(Q)$(MAKE) $(build)=scripts scripts/unifdef
	$(Q)for arch in $(HDRARCHES); do \
	 $(MAKE) ARCH=$$arch -f $(srctree)/scripts/Makefile.headersinst obj=include BIASMDIR=-bi-$$arch ;\
	 done

PHONY += headers_install_all
headers_install_all:
	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/headers.sh install

PHONY += headers_install
headers_install: include/linux/version.h scripts_basic FORCE
	@if [ ! -r $(srctree)/include/asm-$(SRCARCH)/Kbuild ]; then \
	  echo '*** Error: Headers not exportable for this architecture ($(SRCARCH))'; \
	  exit 1 ; fi
	$(Q)$(MAKE) $(build)=scripts scripts/unifdef
	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.headersinst ARCH=$(SRCARCH) obj=include
headers_install: __headers
	$(if $(wildcard $(srctree)/$(hdr-dir)/Kbuild),, \
	$(error Headers not exportable for the $(SRCARCH) architecture))
	$(Q)$(MAKE) $(hdr-inst)=include
	$(Q)$(MAKE) $(hdr-inst)=$(hdr-dir) $(hdr-dst)

PHONY += headers_check_all
headers_check_all: headers_install_all
	$(Q)for arch in $(HDRARCHES); do \
	 $(MAKE) ARCH=$$arch -f $(srctree)/scripts/Makefile.headersinst obj=include BIASMDIR=-bi-$$arch HDRCHECK=1 ;\
	 done
	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/headers.sh check

PHONY += headers_check
headers_check: headers_install
	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.headersinst ARCH=$(SRCARCH) obj=include HDRCHECK=1
	$(Q)$(MAKE) $(hdr-inst)=include HDRCHECK=1
	$(Q)$(MAKE) $(hdr-inst)=$(hdr-dir) $(hdr-dst) HDRCHECK=1

# ---------------------------------------------------------------------------
# Modules
@@ -1131,7 +1156,7 @@ MRPROPER_FILES += .config .config.old include/asm .version .old_version \
                  include/linux/autoconf.h include/linux/version.h      \
                  include/linux/utsrelease.h                            \
                  include/linux/bounds.h include/asm*/asm-offsets.h     \
		  Module.symvers tags TAGS cscope*
		  Module.symvers Module.markers tags TAGS cscope*

# clean - Delete most, but leave enough to build external modules
#
@@ -1150,7 +1175,7 @@ clean: archclean $(clean-dirs)
		\( -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' \
		-o -name 'Module.markers' \) \
		-o -name 'Module.markers' -o -name '.tmp_*.o.*' \) \
		-type f -print | xargs rm -f

# mrproper - Delete all generated files, including .config
@@ -1224,21 +1249,17 @@ help:
	@echo  '  cscope	  - Generate cscope index'
	@echo  '  kernelrelease	  - Output the release version string'
	@echo  '  kernelversion	  - Output the version stored in Makefile'
	@if [ -r $(srctree)/include/asm-$(SRCARCH)/Kbuild ]; then \
	 echo  '  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'; \
	@echo  '  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'; \
	 echo  '                    (default: $(INSTALL_HDR_PATH))'; \
	 fi
	@echo  ''
	 echo  ''
	@echo  'Static analysers'
	@echo  '  checkstack      - Generate a list of stack hogs'
	@echo  '  namespacecheck  - Name space analysis on compiled kernel'
	@echo  '  versioncheck    - Sanity check on version.h usage'
	@echo  '  includecheck    - Check for duplicate included header files'
	@echo  '  export_report   - List the usages of all exported symbols'
	@if [ -r $(srctree)/include/asm-$(SRCARCH)/Kbuild ]; then \
	 echo  '  headers_check   - Sanity check on exported headers'; \
	 fi
	@echo  ''
	@echo  '  headers_check   - Sanity check on exported headers'; \
	 echo  ''
	@echo  'Kernel packaging:'
	@$(MAKE) $(build)=$(package-dir) help
	@echo  ''
@@ -1411,8 +1432,12 @@ define find-sources
	       \( -name config -o -name 'asm-*' \) -prune \
	       -o -name $1 -print; \
	  for arch in $(ALLINCLUDE_ARCHS) ; do \
	       test -e $(__srctree)include/asm-$${arch} && \
                 find $(__srctree)include/asm-$${arch} $(RCS_FIND_IGNORE) \
	            -name $1 -print; \
	       test -e $(__srctree)arch/$${arch}/include/asm && \
	         find $(__srctree)arch/$${arch}/include/asm $(RCS_FIND_IGNORE) \
	            -name $1 -print; \
	  done ; \
	  find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \
	       -name $1 -print; \
+1 −1
Original line number Diff line number Diff line
@@ -360,7 +360,7 @@ config THINKPAD_ACPI_VIDEO
	  If you are not sure, say Y here.

config THINKPAD_ACPI_HOTKEY_POLL
	bool "Suport NVRAM polling for hot keys"
	bool "Support NVRAM polling for hot keys"
	depends on THINKPAD_ACPI
	default y
	---help---
+3 −2
Original line number Diff line number Diff line
# Top-level Makefile calls into asm-$(ARCH)
# List only non-arch directories below

header-y += asm-generic/
header-y += linux/
header-y += sound/
@@ -5,5 +8,3 @@ header-y += mtd/
header-y += rdma/
header-y += video/
header-y += drm/

header-y += asm-$(ARCH)/
Loading