forked from Minki/linux
Kbuild fixes for v4.14 (2nd)
- fix O= building on dash - remove unused dependency in Makefile - fix default of a choice in Kconfig - fix typos and documentation style - fix command options unrecognized by sparse -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJZ9KBpAAoJED2LAQed4NsG85AP/RNrH/uyiLsBWfmicpTOt6Vx tHik2cn3TN5TBKcLcdh214zSBCPiJSp/dIvjOmIEssOqxJS001O+jlrnbB938hCn xVNs3aeBOx1StNB6DOplRtVe/pEIhSMMsXbIilz5a0kAn1mud73FqWmdXSRVA8zT JjI9gCl4pQTkv32Pz9w5HRWI8fweMnvbHfMUJhCaYcIIyN/hqfEzupPAeww4sKkg P5z60iif1OMlGgB9ZdWI+giblgLJOV+KoaUh181YEICenpsaf6rpdroP3X879N7i Y/le65xLVtc3rUZXoggNcGj04nZ7seSBHDbmicgWu0Fbj8+4nQ9mplVr1g1fLCVc Ml3joe24XO0PwXOrOTxCHQHRjqWSRv6cn8X9qIQqSLHkJgryxhZ5DiCGqQRxExLN gbKQ82UZSc4jNsOhcfcZ3ls7Ve5ao7rSUueL97acdDRhm+t0OWLmF9cQrX+eBzpj NOMaPvym+ucPNSRrhEgwFxDjB8dzVfO8tuYTuwX8HxQc7v5SUWuwsnurAXc3fKF2 2D+VsU8EHk9IKDmQMIlvlj6R4bSr0bjecedA6czcRLMr83h1fCxvQxBw4UIQIzY0 4y6QIUX7paMAo/OOqqOm10mBJM6Sr+y2JiGvL4gFhiGbCi3+xvOa7P4hRgPCe2Lq +FGPIdh+skAypoc/1VfA =0Rbk -----END PGP SIGNATURE----- Merge tag 'kbuild-fixes-v4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild fixes from Masahiro Yamada: - fix O= building on dash - remove unused dependency in Makefile - fix default of a choice in Kconfig - fix typos and documentation style - fix command options unrecognized by sparse * tag 'kbuild-fixes-v4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: clang: fix build failures with sparse check kbuild doc: a bundle of fixes on makefiles.txt Makefile: kselftest: fix grammar typo kbuild: Fix optimization level choice default kbuild: drop unused symverfile in Makefile.modpost kbuild: revert $(realpath ...) to $(shell cd ... && /bin/pwd)
This commit is contained in:
commit
25a5d23b47
@ -1108,14 +1108,6 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
ld
|
||||
Link target. Often, LDFLAGS_$@ is used to set specific options to ld.
|
||||
|
||||
objcopy
|
||||
Copy binary. Uses OBJCOPYFLAGS usually specified in
|
||||
arch/$(ARCH)/Makefile.
|
||||
OBJCOPYFLAGS_$@ may be used to set additional options.
|
||||
|
||||
gzip
|
||||
Compress target. Use maximum compression to compress target.
|
||||
|
||||
Example:
|
||||
#arch/x86/boot/Makefile
|
||||
LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
|
||||
@ -1139,6 +1131,19 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
resulting in the target file being recompiled for no
|
||||
obvious reason.
|
||||
|
||||
objcopy
|
||||
Copy binary. Uses OBJCOPYFLAGS usually specified in
|
||||
arch/$(ARCH)/Makefile.
|
||||
OBJCOPYFLAGS_$@ may be used to set additional options.
|
||||
|
||||
gzip
|
||||
Compress target. Use maximum compression to compress target.
|
||||
|
||||
Example:
|
||||
#arch/x86/boot/compressed/Makefile
|
||||
$(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
|
||||
$(call if_changed,gzip)
|
||||
|
||||
dtc
|
||||
Create flattened device tree blob object suitable for linking
|
||||
into vmlinux. Device tree blobs linked into vmlinux are placed
|
||||
@ -1219,7 +1224,7 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
that may be shared between individual architectures.
|
||||
The recommended approach how to use a generic header file is
|
||||
to list the file in the Kbuild file.
|
||||
See "7.3 generic-y" for further info on syntax etc.
|
||||
See "7.2 generic-y" for further info on syntax etc.
|
||||
|
||||
--- 6.11 Post-link pass
|
||||
|
||||
@ -1254,13 +1259,13 @@ A Kbuild file may be defined under arch/<arch>/include/uapi/asm/ and
|
||||
arch/<arch>/include/asm/ to list asm files coming from asm-generic.
|
||||
See subsequent chapter for the syntax of the Kbuild file.
|
||||
|
||||
--- 7.1 no-export-headers
|
||||
--- 7.1 no-export-headers
|
||||
|
||||
no-export-headers is essentially used by include/uapi/linux/Kbuild to
|
||||
avoid exporting specific headers (e.g. kvm.h) on architectures that do
|
||||
not support it. It should be avoided as much as possible.
|
||||
|
||||
--- 7.2 generic-y
|
||||
--- 7.2 generic-y
|
||||
|
||||
If an architecture uses a verbatim copy of a header from
|
||||
include/asm-generic then this is listed in the file
|
||||
@ -1287,7 +1292,7 @@ See subsequent chapter for the syntax of the Kbuild file.
|
||||
Example: termios.h
|
||||
#include <asm-generic/termios.h>
|
||||
|
||||
--- 7.3 generated-y
|
||||
--- 7.3 generated-y
|
||||
|
||||
If an architecture generates other header files alongside generic-y
|
||||
wrappers, generated-y specifies them.
|
||||
@ -1299,7 +1304,7 @@ See subsequent chapter for the syntax of the Kbuild file.
|
||||
#arch/x86/include/asm/Kbuild
|
||||
generated-y += syscalls_32.h
|
||||
|
||||
--- 7.5 mandatory-y
|
||||
--- 7.4 mandatory-y
|
||||
|
||||
mandatory-y is essentially used by include/uapi/asm-generic/Kbuild.asm
|
||||
to define the minimum set of headers that must be exported in
|
||||
|
10
Makefile
10
Makefile
@ -130,8 +130,8 @@ endif
|
||||
ifneq ($(KBUILD_OUTPUT),)
|
||||
# check that the output directory actually exists
|
||||
saved-output := $(KBUILD_OUTPUT)
|
||||
$(shell [ -d $(KBUILD_OUTPUT) ] || mkdir -p $(KBUILD_OUTPUT))
|
||||
KBUILD_OUTPUT := $(realpath $(KBUILD_OUTPUT))
|
||||
KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
|
||||
&& /bin/pwd)
|
||||
$(if $(KBUILD_OUTPUT),, \
|
||||
$(error failed to create output directory "$(saved-output)"))
|
||||
|
||||
@ -697,11 +697,11 @@ KBUILD_CFLAGS += $(stackp-flag)
|
||||
|
||||
ifeq ($(cc-name),clang)
|
||||
ifneq ($(CROSS_COMPILE),)
|
||||
CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%))
|
||||
CLANG_TARGET := --target=$(notdir $(CROSS_COMPILE:%-=%))
|
||||
GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
|
||||
endif
|
||||
ifneq ($(GCC_TOOLCHAIN),)
|
||||
CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN)
|
||||
CLANG_GCC_TC := --gcc-toolchain=$(GCC_TOOLCHAIN)
|
||||
endif
|
||||
KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
|
||||
KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
|
||||
@ -1399,7 +1399,7 @@ help:
|
||||
@echo ' Build, install, and boot kernel before'
|
||||
@echo ' running kselftest on it'
|
||||
@echo ' kselftest-clean - Remove all generated kselftest files'
|
||||
@echo ' kselftest-merge - Merge all the config dependencies of kselftest to existed'
|
||||
@echo ' kselftest-merge - Merge all the config dependencies of kselftest to existing'
|
||||
@echo ' .config.'
|
||||
@echo ''
|
||||
@echo 'Userspace tools targets:'
|
||||
|
@ -1033,7 +1033,7 @@ endif
|
||||
|
||||
choice
|
||||
prompt "Compiler optimization level"
|
||||
default CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
|
||||
default CC_OPTIMIZE_FOR_PERFORMANCE
|
||||
|
||||
config CC_OPTIMIZE_FOR_PERFORMANCE
|
||||
bool "Optimize for performance"
|
||||
|
@ -97,7 +97,6 @@ vmlinux.o: FORCE
|
||||
$(call cmd,kernel-mod)
|
||||
|
||||
# Declare generated files as targets for modpost
|
||||
$(symverfile): __modpost ;
|
||||
$(modules:.ko=.mod.c): __modpost ;
|
||||
|
||||
|
||||
|
@ -26,7 +26,7 @@ endif
|
||||
|
||||
ifneq ($(OUTPUT),)
|
||||
# check that the output directory actually exists
|
||||
OUTDIR := $(realpath $(OUTPUT))
|
||||
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
|
||||
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
|
||||
endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
ifneq ($(O),)
|
||||
ifeq ($(origin O), command line)
|
||||
ABSOLUTE_O := $(realpath $(O))
|
||||
dummy := $(if $(ABSOLUTE_O),,$(error O=$(O) does not exist))
|
||||
dummy := $(if $(shell test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
|
||||
ABSOLUTE_O := $(shell cd $(O) ; pwd)
|
||||
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 := $(realpath $(OUTPUT))
|
||||
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
|
||||
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
|
||||
endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user