Commit 25a5d23b authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'kbuild-fixes-v4.14-2' of...

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)
parents a7d3e63f bb3f38c3
...@@ -1108,14 +1108,6 @@ When kbuild executes, the following steps are followed (roughly): ...@@ -1108,14 +1108,6 @@ When kbuild executes, the following steps are followed (roughly):
ld ld
Link target. Often, LDFLAGS_$@ is used to set specific options to 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: Example:
#arch/x86/boot/Makefile #arch/x86/boot/Makefile
LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
...@@ -1139,6 +1131,19 @@ When kbuild executes, the following steps are followed (roughly): ...@@ -1139,6 +1131,19 @@ When kbuild executes, the following steps are followed (roughly):
resulting in the target file being recompiled for no resulting in the target file being recompiled for no
obvious reason. 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 dtc
Create flattened device tree blob object suitable for linking Create flattened device tree blob object suitable for linking
into vmlinux. Device tree blobs linked into vmlinux are placed into vmlinux. Device tree blobs linked into vmlinux are placed
...@@ -1219,7 +1224,7 @@ When kbuild executes, the following steps are followed (roughly): ...@@ -1219,7 +1224,7 @@ When kbuild executes, the following steps are followed (roughly):
that may be shared between individual architectures. that may be shared between individual architectures.
The recommended approach how to use a generic header file is The recommended approach how to use a generic header file is
to list the file in the Kbuild file. 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 --- 6.11 Post-link pass
...@@ -1254,13 +1259,13 @@ A Kbuild file may be defined under arch/<arch>/include/uapi/asm/ and ...@@ -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. arch/<arch>/include/asm/ to list asm files coming from asm-generic.
See subsequent chapter for the syntax of the Kbuild file. 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 no-export-headers is essentially used by include/uapi/linux/Kbuild to
avoid exporting specific headers (e.g. kvm.h) on architectures that do avoid exporting specific headers (e.g. kvm.h) on architectures that do
not support it. It should be avoided as much as possible. 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 If an architecture uses a verbatim copy of a header from
include/asm-generic then this is listed in the file include/asm-generic then this is listed in the file
...@@ -1287,7 +1292,7 @@ See subsequent chapter for the syntax of the Kbuild file. ...@@ -1287,7 +1292,7 @@ See subsequent chapter for the syntax of the Kbuild file.
Example: termios.h Example: termios.h
#include <asm-generic/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 If an architecture generates other header files alongside generic-y
wrappers, generated-y specifies them. wrappers, generated-y specifies them.
...@@ -1299,7 +1304,7 @@ See subsequent chapter for the syntax of the Kbuild file. ...@@ -1299,7 +1304,7 @@ See subsequent chapter for the syntax of the Kbuild file.
#arch/x86/include/asm/Kbuild #arch/x86/include/asm/Kbuild
generated-y += syscalls_32.h 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 mandatory-y is essentially used by include/uapi/asm-generic/Kbuild.asm
to define the minimum set of headers that must be exported in to define the minimum set of headers that must be exported in
......
...@@ -130,8 +130,8 @@ endif ...@@ -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)
$(shell [ -d $(KBUILD_OUTPUT) ] || mkdir -p $(KBUILD_OUTPUT)) KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
KBUILD_OUTPUT := $(realpath $(KBUILD_OUTPUT)) && /bin/pwd)
$(if $(KBUILD_OUTPUT),, \ $(if $(KBUILD_OUTPUT),, \
$(error failed to create output directory "$(saved-output)")) $(error failed to create output directory "$(saved-output)"))
...@@ -697,11 +697,11 @@ KBUILD_CFLAGS += $(stackp-flag) ...@@ -697,11 +697,11 @@ KBUILD_CFLAGS += $(stackp-flag)
ifeq ($(cc-name),clang) ifeq ($(cc-name),clang)
ifneq ($(CROSS_COMPILE),) ifneq ($(CROSS_COMPILE),)
CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%)) CLANG_TARGET := --target=$(notdir $(CROSS_COMPILE:%-=%))
GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..) GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
endif endif
ifneq ($(GCC_TOOLCHAIN),) ifneq ($(GCC_TOOLCHAIN),)
CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN) CLANG_GCC_TC := --gcc-toolchain=$(GCC_TOOLCHAIN)
endif endif
KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
...@@ -1399,7 +1399,7 @@ help: ...@@ -1399,7 +1399,7 @@ help:
@echo ' Build, install, and boot kernel before' @echo ' Build, install, and boot kernel before'
@echo ' running kselftest on it' @echo ' running kselftest on it'
@echo ' kselftest-clean - Remove all generated kselftest files' @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 ' .config.'
@echo '' @echo ''
@echo 'Userspace tools targets:' @echo 'Userspace tools targets:'
......
...@@ -1033,7 +1033,7 @@ endif ...@@ -1033,7 +1033,7 @@ endif
choice choice
prompt "Compiler optimization level" prompt "Compiler optimization level"
default CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE default CC_OPTIMIZE_FOR_PERFORMANCE
config CC_OPTIMIZE_FOR_PERFORMANCE config CC_OPTIMIZE_FOR_PERFORMANCE
bool "Optimize for performance" bool "Optimize for performance"
......
...@@ -97,7 +97,6 @@ vmlinux.o: FORCE ...@@ -97,7 +97,6 @@ vmlinux.o: FORCE
$(call cmd,kernel-mod) $(call cmd,kernel-mod)
# Declare generated files as targets for modpost # Declare generated files as targets for modpost
$(symverfile): __modpost ;
$(modules:.ko=.mod.c): __modpost ; $(modules:.ko=.mod.c): __modpost ;
......
...@@ -26,7 +26,7 @@ endif ...@@ -26,7 +26,7 @@ endif
ifneq ($(OUTPUT),) ifneq ($(OUTPUT),)
# check that the output directory actually exists # 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)) $(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
endif endif
......
ifneq ($(O),) ifneq ($(O),)
ifeq ($(origin O), command line) ifeq ($(origin O), command line)
ABSOLUTE_O := $(realpath $(O)) dummy := $(if $(shell test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
dummy := $(if $(ABSOLUTE_O),,$(error O=$(O) does not exist)) ABSOLUTE_O := $(shell cd $(O) ; pwd)
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 ...@@ -12,7 +12,7 @@ endif
# check that the output directory actually exists # check that the output directory actually exists
ifneq ($(OUTPUT),) ifneq ($(OUTPUT),)
OUTDIR := $(realpath $(OUTPUT)) OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist)) $(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
endif endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment