mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Kbuild updates for v4.14
- Use Make-builtin $(abspath ...) helper to get absolute path - Add W=2 extra warning option to detect unused macros - Use more KCONFIG_CONFIG instead hard-coded .config - Fix bugs of tar*-pkg targets -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJZupWLAAoJED2LAQed4NsGVEEQAItJ0y1uxDr0cjJNE46N6p6+ EMCWKWC2H0XR9oFRY1y5utYWIwRauIaESgGg1qMU6Lbg5qZamggpNrYVH207tCz1 gNkU8wwc2SXpxJy2eG2asxY9L2mL0a5fFFOgxIxoz+hCTgr4Yk1IGnTH9+GPQKtW thduXxTvcB4/oNTOgUHNj/7j9ydn7ETTOjsCoaEwBZqtBaaEBj20h6EOhgX+ouMd 5P9YoCbfk28KHKlnMd8sNHV5SLKb94wCwoM/QIOLl42rwIAc81dUgOmaMGeflXF9 zBH1exi4ID9SyQyuMZemJNe0bD6YR2qG0Sf1t2eDnhxmcav7Vwk+WV7Pdpr8UWw8 Lot9yPJQA43kfYj6pfCJFXzWEduNT48zGGBJb30WyGkBkidNNGkujdSeI36swEQD fPV9tHPk48OSNPqJWZXehezBqN9U5Sa1M9dk5TNA69mzdZgNp052flxywBQ/SGTO +h17SREP9Mm6CQ9ApfHaOlMr40/mpCCDq+p8pfem5ZtnBby9k4uNp2P9hAMTJdw8 5AOdwB0MdzvMQgF5UO0kklk6HGUZTAGHi91k5k3e+DPydt9+2ntZFZoVwVYaD756 E55KKrQZqSO758gnN9Wbr8ihgOhNI3ZA320nCjfwQdnUqQ496KAkLpgVALF8pEVi /xIBawfQNj9BlDc3Y3jo =Tam1 -----END PGP SIGNATURE----- Merge tag 'kbuild-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild updates from Masahiro Yamada: - Use Make-builtin $(abspath ...) helper to get absolute path - Add W=2 extra warning option to detect unused macros - Use more KCONFIG_CONFIG instead hard-coded .config - Fix bugs of tar*-pkg targets * tag 'kbuild-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: buildtar: do not print successful message if tar returns error kbuild: buildtar: fix tar error when CONFIG_MODULES is disabled kbuild: Use KCONFIG_CONFIG in buildtar Kbuild: enable -Wunused-macros warning for "make W=2" kbuild: use $(abspath ...) instead of $(shell cd ... && /bin/pwd)
This commit is contained in:
		
						commit
						a2bc8dea9e
					
				
					 6 changed files with 29 additions and 30 deletions
				
			
		
							
								
								
									
										12
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Makefile
									
									
									
									
									
								
							| 
						 | 
					@ -130,8 +130,8 @@ endif
 | 
				
			||||||
ifneq ($(KBUILD_OUTPUT),)
 | 
					ifneq ($(KBUILD_OUTPUT),)
 | 
				
			||||||
# check that the output directory actually exists
 | 
					# check that the output directory actually exists
 | 
				
			||||||
saved-output := $(KBUILD_OUTPUT)
 | 
					saved-output := $(KBUILD_OUTPUT)
 | 
				
			||||||
KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
 | 
					$(shell [ -d $(KBUILD_OUTPUT) ] || mkdir -p $(KBUILD_OUTPUT))
 | 
				
			||||||
								&& /bin/pwd)
 | 
					KBUILD_OUTPUT := $(realpath $(KBUILD_OUTPUT))
 | 
				
			||||||
$(if $(KBUILD_OUTPUT),, \
 | 
					$(if $(KBUILD_OUTPUT),, \
 | 
				
			||||||
     $(error failed to create output directory "$(saved-output)"))
 | 
					     $(error failed to create output directory "$(saved-output)"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -978,7 +978,7 @@ ifdef CONFIG_HEADERS_CHECK
 | 
				
			||||||
	$(Q)$(MAKE) -f $(srctree)/Makefile headers_check
 | 
						$(Q)$(MAKE) -f $(srctree)/Makefile headers_check
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
ifdef CONFIG_GDB_SCRIPTS
 | 
					ifdef CONFIG_GDB_SCRIPTS
 | 
				
			||||||
	$(Q)ln -fsn `cd $(srctree) && /bin/pwd`/scripts/gdb/vmlinux-gdb.py
 | 
						$(Q)ln -fsn $(abspath $(srctree)/scripts/gdb/vmlinux-gdb.py)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
ifdef CONFIG_TRIM_UNUSED_KSYMS
 | 
					ifdef CONFIG_TRIM_UNUSED_KSYMS
 | 
				
			||||||
	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
 | 
						$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
 | 
				
			||||||
| 
						 | 
					@ -1238,7 +1238,7 @@ _modinst_:
 | 
				
			||||||
	@rm -rf $(MODLIB)/kernel
 | 
						@rm -rf $(MODLIB)/kernel
 | 
				
			||||||
	@rm -f $(MODLIB)/source
 | 
						@rm -f $(MODLIB)/source
 | 
				
			||||||
	@mkdir -p $(MODLIB)/kernel
 | 
						@mkdir -p $(MODLIB)/kernel
 | 
				
			||||||
	@ln -s `cd $(srctree) && /bin/pwd` $(MODLIB)/source
 | 
						@ln -s $(abspath $(srctree)) $(MODLIB)/source
 | 
				
			||||||
	@if [ ! $(objtree) -ef  $(MODLIB)/build ]; then \
 | 
						@if [ ! $(objtree) -ef  $(MODLIB)/build ]; then \
 | 
				
			||||||
		rm -f $(MODLIB)/build ; \
 | 
							rm -f $(MODLIB)/build ; \
 | 
				
			||||||
		ln -s $(CURDIR) $(MODLIB)/build ; \
 | 
							ln -s $(CURDIR) $(MODLIB)/build ; \
 | 
				
			||||||
| 
						 | 
					@ -1630,11 +1630,11 @@ image_name:
 | 
				
			||||||
# Clear a bunch of variables before executing the submake
 | 
					# Clear a bunch of variables before executing the submake
 | 
				
			||||||
tools/: FORCE
 | 
					tools/: FORCE
 | 
				
			||||||
	$(Q)mkdir -p $(objtree)/tools
 | 
						$(Q)mkdir -p $(objtree)/tools
 | 
				
			||||||
	$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/
 | 
						$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(src)/tools/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tools/%: FORCE
 | 
					tools/%: FORCE
 | 
				
			||||||
	$(Q)mkdir -p $(objtree)/tools
 | 
						$(Q)mkdir -p $(objtree)/tools
 | 
				
			||||||
	$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/ $*
 | 
						$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(src)/tools/ $*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Single targets
 | 
					# Single targets
 | 
				
			||||||
# ---------------------------------------------------------------------------
 | 
					# ---------------------------------------------------------------------------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,7 @@ warning-2 += $(call cc-option, -Wlogical-op)
 | 
				
			||||||
warning-2 += $(call cc-option, -Wmissing-field-initializers)
 | 
					warning-2 += $(call cc-option, -Wmissing-field-initializers)
 | 
				
			||||||
warning-2 += $(call cc-option, -Wsign-compare)
 | 
					warning-2 += $(call cc-option, -Wsign-compare)
 | 
				
			||||||
warning-2 += $(call cc-option, -Wmaybe-uninitialized)
 | 
					warning-2 += $(call cc-option, -Wmaybe-uninitialized)
 | 
				
			||||||
 | 
					warning-2 += $(call cc-option, -Wunused-macros)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
warning-3 := -Wbad-function-cast
 | 
					warning-3 := -Wbad-function-cast
 | 
				
			||||||
warning-3 += -Wcast-qual
 | 
					warning-3 += -Wcast-qual
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
always := gdb-scripts
 | 
					always := gdb-scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SRCTREE := $(shell cd $(srctree) && /bin/pwd)
 | 
					SRCTREE := $(abspath $(srctree))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(obj)/gdb-scripts:
 | 
					$(obj)/gdb-scripts:
 | 
				
			||||||
ifneq ($(KBUILD_SRC),)
 | 
					ifneq ($(KBUILD_SRC),)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,20 +24,19 @@ tarball="${objtree}/linux-${KERNELRELEASE}-${ARCH}.tar"
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
case "${1}" in
 | 
					case "${1}" in
 | 
				
			||||||
	tar-pkg)
 | 
						tar-pkg)
 | 
				
			||||||
		compress="cat"
 | 
							opts=
 | 
				
			||||||
		file_ext=""
 | 
					 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	targz-pkg)
 | 
						targz-pkg)
 | 
				
			||||||
		compress="gzip"
 | 
							opts=--gzip
 | 
				
			||||||
		file_ext=".gz"
 | 
							tarball=${tarball}.gz
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	tarbz2-pkg)
 | 
						tarbz2-pkg)
 | 
				
			||||||
		compress="bzip2"
 | 
							opts=--bzip2
 | 
				
			||||||
		file_ext=".bz2"
 | 
							tarball=${tarball}.bz2
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	tarxz-pkg)
 | 
						tarxz-pkg)
 | 
				
			||||||
		compress="xz"
 | 
							opts=--xz
 | 
				
			||||||
		file_ext=".xz"
 | 
							tarball=${tarball}.xz
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	*)
 | 
						*)
 | 
				
			||||||
		echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2
 | 
							echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2
 | 
				
			||||||
| 
						 | 
					@ -51,13 +50,14 @@ esac
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
rm -rf -- "${tmpdir}"
 | 
					rm -rf -- "${tmpdir}"
 | 
				
			||||||
mkdir -p -- "${tmpdir}/boot"
 | 
					mkdir -p -- "${tmpdir}/boot"
 | 
				
			||||||
 | 
					dirs=boot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Try to install modules
 | 
					# Try to install modules
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
if grep -q '^CONFIG_MODULES=y' "${objtree}/.config"; then
 | 
					if grep -q '^CONFIG_MODULES=y' "${KCONFIG_CONFIG}"; then
 | 
				
			||||||
	make ARCH="${ARCH}" O="${objtree}" KBUILD_SRC= INSTALL_MOD_PATH="${tmpdir}" modules_install
 | 
						make ARCH="${ARCH}" O="${objtree}" KBUILD_SRC= INSTALL_MOD_PATH="${tmpdir}" modules_install
 | 
				
			||||||
 | 
						dirs="$dirs lib"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,7 +65,7 @@ fi
 | 
				
			||||||
# Install basic kernel files
 | 
					# Install basic kernel files
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
cp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}"
 | 
					cp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}"
 | 
				
			||||||
cp -v -- "${objtree}/.config" "${tmpdir}/boot/config-${KERNELRELEASE}"
 | 
					cp -v -- "${KCONFIG_CONFIG}" "${tmpdir}/boot/config-${KERNELRELEASE}"
 | 
				
			||||||
cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
 | 
					cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -124,14 +124,12 @@ esac
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Create the tarball
 | 
					# Create the tarball
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
(
 | 
					if tar --owner=root --group=root --help >/dev/null 2>&1; then
 | 
				
			||||||
	opts=
 | 
						opts="$opts --owner=root --group=root"
 | 
				
			||||||
	if tar --owner=root --group=root --help >/dev/null 2>&1; then
 | 
					fi
 | 
				
			||||||
		opts="--owner=root --group=root"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	tar cf - -C "$tmpdir" boot/ lib/ $opts | ${compress} > "${tarball}${file_ext}"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Tarball successfully created in ${tarball}${file_ext}"
 | 
					tar cf $tarball -C $tmpdir $opts $dirs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Tarball successfully created in $tarball"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exit 0
 | 
					exit 0
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifneq ($(OUTPUT),)
 | 
					ifneq ($(OUTPUT),)
 | 
				
			||||||
# check that the output directory actually exists
 | 
					# check that the output directory actually exists
 | 
				
			||||||
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
 | 
					OUTDIR := $(realpath $(OUTPUT))
 | 
				
			||||||
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
 | 
					$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
ifneq ($(O),)
 | 
					ifneq ($(O),)
 | 
				
			||||||
ifeq ($(origin O), command line)
 | 
					ifeq ($(origin O), command line)
 | 
				
			||||||
	dummy := $(if $(shell test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
 | 
						ABSOLUTE_O := $(realpath $(O))
 | 
				
			||||||
	ABSOLUTE_O := $(shell cd $(O) ; pwd)
 | 
						dummy := $(if $(ABSOLUTE_O),,$(error O=$(O) does not exist))
 | 
				
			||||||
	OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
 | 
						OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
 | 
				
			||||||
	COMMAND_O := O=$(ABSOLUTE_O)
 | 
						COMMAND_O := O=$(ABSOLUTE_O)
 | 
				
			||||||
ifeq ($(objtree),)
 | 
					ifeq ($(objtree),)
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# check that the output directory actually exists
 | 
					# check that the output directory actually exists
 | 
				
			||||||
ifneq ($(OUTPUT),)
 | 
					ifneq ($(OUTPUT),)
 | 
				
			||||||
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
 | 
					OUTDIR := $(realpath $(OUTPUT))
 | 
				
			||||||
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
 | 
					$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue