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),)
|
||||
# check that the output directory actually exists
|
||||
saved-output := $(KBUILD_OUTPUT)
|
||||
KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
|
||||
&& /bin/pwd)
|
||||
$(shell [ -d $(KBUILD_OUTPUT) ] || mkdir -p $(KBUILD_OUTPUT))
|
||||
KBUILD_OUTPUT := $(realpath $(KBUILD_OUTPUT))
|
||||
$(if $(KBUILD_OUTPUT),, \
|
||||
$(error failed to create output directory "$(saved-output)"))
|
||||
|
||||
|
@ -978,7 +978,7 @@ ifdef CONFIG_HEADERS_CHECK
|
|||
$(Q)$(MAKE) -f $(srctree)/Makefile headers_check
|
||||
endif
|
||||
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
|
||||
ifdef CONFIG_TRIM_UNUSED_KSYMS
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
|
||||
|
@ -1238,7 +1238,7 @@ _modinst_:
|
|||
@rm -rf $(MODLIB)/kernel
|
||||
@rm -f $(MODLIB)/source
|
||||
@mkdir -p $(MODLIB)/kernel
|
||||
@ln -s `cd $(srctree) && /bin/pwd` $(MODLIB)/source
|
||||
@ln -s $(abspath $(srctree)) $(MODLIB)/source
|
||||
@if [ ! $(objtree) -ef $(MODLIB)/build ]; then \
|
||||
rm -f $(MODLIB)/build ; \
|
||||
ln -s $(CURDIR) $(MODLIB)/build ; \
|
||||
|
@ -1630,11 +1630,11 @@ image_name:
|
|||
# Clear a bunch of variables before executing the submake
|
||||
tools/: FORCE
|
||||
$(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
|
||||
$(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
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
|
@ -37,6 +37,7 @@ warning-2 += $(call cc-option, -Wlogical-op)
|
|||
warning-2 += $(call cc-option, -Wmissing-field-initializers)
|
||||
warning-2 += $(call cc-option, -Wsign-compare)
|
||||
warning-2 += $(call cc-option, -Wmaybe-uninitialized)
|
||||
warning-2 += $(call cc-option, -Wunused-macros)
|
||||
|
||||
warning-3 := -Wbad-function-cast
|
||||
warning-3 += -Wcast-qual
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
always := gdb-scripts
|
||||
|
||||
SRCTREE := $(shell cd $(srctree) && /bin/pwd)
|
||||
SRCTREE := $(abspath $(srctree))
|
||||
|
||||
$(obj)/gdb-scripts:
|
||||
ifneq ($(KBUILD_SRC),)
|
||||
|
|
|
@ -24,20 +24,19 @@ tarball="${objtree}/linux-${KERNELRELEASE}-${ARCH}.tar"
|
|||
#
|
||||
case "${1}" in
|
||||
tar-pkg)
|
||||
compress="cat"
|
||||
file_ext=""
|
||||
opts=
|
||||
;;
|
||||
targz-pkg)
|
||||
compress="gzip"
|
||||
file_ext=".gz"
|
||||
opts=--gzip
|
||||
tarball=${tarball}.gz
|
||||
;;
|
||||
tarbz2-pkg)
|
||||
compress="bzip2"
|
||||
file_ext=".bz2"
|
||||
opts=--bzip2
|
||||
tarball=${tarball}.bz2
|
||||
;;
|
||||
tarxz-pkg)
|
||||
compress="xz"
|
||||
file_ext=".xz"
|
||||
opts=--xz
|
||||
tarball=${tarball}.xz
|
||||
;;
|
||||
*)
|
||||
echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2
|
||||
|
@ -51,13 +50,14 @@ esac
|
|||
#
|
||||
rm -rf -- "${tmpdir}"
|
||||
mkdir -p -- "${tmpdir}/boot"
|
||||
|
||||
dirs=boot
|
||||
|
||||
#
|
||||
# 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
|
||||
dirs="$dirs lib"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -65,7 +65,7 @@ fi
|
|||
# Install basic kernel files
|
||||
#
|
||||
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}"
|
||||
|
||||
|
||||
|
@ -124,14 +124,12 @@ esac
|
|||
#
|
||||
# Create the tarball
|
||||
#
|
||||
(
|
||||
opts=
|
||||
if tar --owner=root --group=root --help >/dev/null 2>&1; then
|
||||
opts="--owner=root --group=root"
|
||||
fi
|
||||
tar cf - -C "$tmpdir" boot/ lib/ $opts | ${compress} > "${tarball}${file_ext}"
|
||||
)
|
||||
if tar --owner=root --group=root --help >/dev/null 2>&1; then
|
||||
opts="$opts --owner=root --group=root"
|
||||
fi
|
||||
|
||||
echo "Tarball successfully created in ${tarball}${file_ext}"
|
||||
tar cf $tarball -C $tmpdir $opts $dirs
|
||||
|
||||
echo "Tarball successfully created in $tarball"
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -26,7 +26,7 @@ endif
|
|||
|
||||
ifneq ($(OUTPUT),)
|
||||
# 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))
|
||||
endif
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ifneq ($(O),)
|
||||
ifeq ($(origin O), command line)
|
||||
dummy := $(if $(shell test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
|
||||
ABSOLUTE_O := $(shell cd $(O) ; pwd)
|
||||
ABSOLUTE_O := $(realpath $(O))
|
||||
dummy := $(if $(ABSOLUTE_O),,$(error O=$(O) does not exist))
|
||||
OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
|
||||
COMMAND_O := O=$(ABSOLUTE_O)
|
||||
ifeq ($(objtree),)
|
||||
|
@ -12,7 +12,7 @@ endif
|
|||
|
||||
# check that the output directory actually exists
|
||||
ifneq ($(OUTPUT),)
|
||||
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
|
||||
OUTDIR := $(realpath $(OUTPUT))
|
||||
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
|
||||
endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue