diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-03-10 20:48:21 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-03-10 20:48:21 -0400 |
| commit | ffd602eb4693bbb49b301fa059b109bbdebf9524 (patch) | |
| tree | a7be15ffb7fe1a23dde4dc2831670f3abed6ce95 /scripts | |
| parent | 5af7f115886f7ec193171e2e49b8000ddd1e7147 (diff) | |
| parent | 9250d20e9ecedab6aa331a127fbfc1272383ed72 (diff) | |
Merge tag 'kbuild-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada:
- do not generate unneeded top-level built-in.a
- let git ignore O= directory entirely
- optimize scripts/kallsyms slightly
- exclude DWARF info from *.s regardless of config options
- fix GCC toolchain search path for Clang to prepare ld.lld support
- do not generate modules.order when CONFIG_MODULES is disabled
- simplify single target rules and remove VPATH for external module
build
- allow to add optional flags to dpkg-buildpackage when building
deb-pkg
- move some compiler option tests from Makefile to Kconfig
- various Makefile cleanups
* tag 'kbuild-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (40 commits)
kbuild: remove scripts/basic/% build target
kbuild: use -Werror=implicit-... instead of -Werror-implicit-...
kbuild: clean up scripts/gcc-version.sh
kbuild: remove cc-version macro
kbuild: update comment block of scripts/clang-version.sh
kbuild: remove commented-out INITRD_COMPRESS
kbuild: move -gsplit-dwarf, -gdwarf-4 option tests to Kconfig
kbuild: [bin]deb-pkg: add DPKG_FLAGS variable
kbuild: move ".config not found!" message from Kconfig to Makefile
kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing
kbuild: simplify single target rules
kbuild: remove empty rules for makefiles
kbuild: make -r/-R effective in top Makefile for old Make versions
kbuild: move tools_silent to a more relevant place
kbuild: compute false-positive -Wmaybe-uninitialized cases in Kconfig
kbuild: refactor cc-cross-prefix implementation
kbuild: hardcode genksyms path and remove GENKSYMS variable
scripts/gdb: refactor rules for symlink creation
kbuild: create symlink to vmlinux-gdb.py in scripts_gdb target
scripts/gdb: do not descend into scripts/gdb from scripts
...
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Kbuild.include | 21 | ||||
| -rw-r--r-- | scripts/Kconfig.include | 2 | ||||
| -rw-r--r-- | scripts/Makefile | 3 | ||||
| -rw-r--r-- | scripts/Makefile.build | 29 | ||||
| -rw-r--r-- | scripts/Makefile.host | 6 | ||||
| -rw-r--r-- | scripts/Makefile.lib | 42 | ||||
| -rw-r--r-- | scripts/Makefile.modpost | 2 | ||||
| -rwxr-xr-x | scripts/clang-version.sh | 10 | ||||
| -rwxr-xr-x | scripts/gcc-version.sh | 27 | ||||
| -rw-r--r-- | scripts/gdb/linux/Makefile | 25 | ||||
| -rw-r--r-- | scripts/kallsyms.c | 13 | ||||
| -rw-r--r-- | scripts/kconfig/conf.c | 13 | ||||
| -rwxr-xr-x | scripts/link-vmlinux.sh | 46 | ||||
| -rwxr-xr-x | scripts/mkcompile_h | 4 | ||||
| -rw-r--r-- | scripts/package/Makefile | 8 | ||||
| -rwxr-xr-x | scripts/package/builddeb | 10 | ||||
| -rwxr-xr-x | scripts/package/buildtar | 2 | ||||
| -rwxr-xr-x | scripts/package/mkdebian | 6 |
18 files changed, 104 insertions, 165 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 30816037036e..7484b9d8272f 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include | |||
| @@ -24,6 +24,10 @@ depfile = $(subst $(comma),_,$(dot-target).d) | |||
| 24 | basetarget = $(basename $(notdir $@)) | 24 | basetarget = $(basename $(notdir $@)) |
| 25 | 25 | ||
| 26 | ### | 26 | ### |
| 27 | # real prerequisites without phony targets | ||
| 28 | real-prereqs = $(filter-out $(PHONY), $^) | ||
| 29 | |||
| 30 | ### | ||
| 27 | # Escape single quote for use in echo statements | 31 | # Escape single quote for use in echo statements |
| 28 | escsq = $(subst $(squote),'\$(squote)',$1) | 32 | escsq = $(subst $(squote),'\$(squote)',$1) |
| 29 | 33 | ||
| @@ -67,14 +71,10 @@ endef | |||
| 67 | 71 | ||
| 68 | # cc-cross-prefix | 72 | # cc-cross-prefix |
| 69 | # Usage: CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- m68k-linux-) | 73 | # Usage: CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- m68k-linux-) |
| 70 | # Return first prefix where a prefix$(CC) is found in PATH. | 74 | # Return first <prefix> where a <prefix>gcc is found in PATH. |
| 71 | # If no $(CC) found in PATH with listed prefixes return nothing | 75 | # If no gcc found in PATH with listed prefixes return nothing |
| 72 | cc-cross-prefix = \ | 76 | cc-cross-prefix = $(firstword $(foreach c, $(filter-out -%, $(1)), \ |
| 73 | $(word 1, $(foreach c,$(1), \ | 77 | $(if $(shell which $(c)gcc), $(c)))) |
| 74 | $(shell set -e; \ | ||
| 75 | if (which $(strip $(c))$(CC)) > /dev/null 2>&1 ; then \ | ||
| 76 | echo $(c); \ | ||
| 77 | fi))) | ||
| 78 | 78 | ||
| 79 | # output directory for tests below | 79 | # output directory for tests below |
| 80 | TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/) | 80 | TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/) |
| @@ -134,12 +134,9 @@ cc-option-yn = $(call try-run,\ | |||
| 134 | cc-disable-warning = $(call try-run,\ | 134 | cc-disable-warning = $(call try-run,\ |
| 135 | $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) | 135 | $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) |
| 136 | 136 | ||
| 137 | # cc-version | ||
| 138 | cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) | ||
| 139 | |||
| 140 | # cc-ifversion | 137 | # cc-ifversion |
| 141 | # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) | 138 | # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) |
| 142 | cc-ifversion = $(shell [ $(cc-version) $(1) $(2) ] && echo $(3) || echo $(4)) | 139 | cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] && echo $(3) || echo $(4)) |
| 143 | 140 | ||
| 144 | # cc-ldoption | 141 | # cc-ldoption |
| 145 | # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both) | 142 | # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both) |
diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include index dad5583451af..87ff1dcc6bd5 100644 --- a/scripts/Kconfig.include +++ b/scripts/Kconfig.include | |||
| @@ -27,4 +27,4 @@ cc-option = $(success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null) | |||
| 27 | ld-option = $(success,$(LD) -v $(1)) | 27 | ld-option = $(success,$(LD) -v $(1)) |
| 28 | 28 | ||
| 29 | # gcc version including patch level | 29 | # gcc version including patch level |
| 30 | gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed 's/^0*//') | 30 | gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh $(CC)) |
diff --git a/scripts/Makefile b/scripts/Makefile index feb1f71381d7..9d442ee050bd 100644 --- a/scripts/Makefile +++ b/scripts/Makefile | |||
| @@ -39,7 +39,6 @@ build_unifdef: $(obj)/unifdef | |||
| 39 | subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins | 39 | subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins |
| 40 | subdir-$(CONFIG_MODVERSIONS) += genksyms | 40 | subdir-$(CONFIG_MODVERSIONS) += genksyms |
| 41 | subdir-$(CONFIG_SECURITY_SELINUX) += selinux | 41 | subdir-$(CONFIG_SECURITY_SELINUX) += selinux |
| 42 | subdir-$(CONFIG_GDB_SCRIPTS) += gdb | ||
| 43 | 42 | ||
| 44 | # Let clean descend into subdirs | 43 | # Let clean descend into subdirs |
| 45 | subdir- += basic dtc kconfig mod package | 44 | subdir- += basic dtc gdb kconfig mod package |
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index fd03d60f6c5a..850b611f4aba 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build | |||
| @@ -63,7 +63,9 @@ ifneq ($(strip $(real-obj-y) $(need-builtin)),) | |||
| 63 | builtin-target := $(obj)/built-in.a | 63 | builtin-target := $(obj)/built-in.a |
| 64 | endif | 64 | endif |
| 65 | 65 | ||
| 66 | ifdef CONFIG_MODULES | ||
| 66 | modorder-target := $(obj)/modules.order | 67 | modorder-target := $(obj)/modules.order |
| 68 | endif | ||
| 67 | 69 | ||
| 68 | # We keep a list of all modules in $(MODVERDIR) | 70 | # We keep a list of all modules in $(MODVERDIR) |
| 69 | 71 | ||
| @@ -104,7 +106,7 @@ modkern_cflags = \ | |||
| 104 | quiet_modtag = $(if $(part-of-module),[M], ) | 106 | quiet_modtag = $(if $(part-of-module),[M], ) |
| 105 | 107 | ||
| 106 | quiet_cmd_cc_s_c = CC $(quiet_modtag) $@ | 108 | quiet_cmd_cc_s_c = CC $(quiet_modtag) $@ |
| 107 | cmd_cc_s_c = $(CC) $(c_flags) $(DISABLE_LTO) -fverbose-asm -S -o $@ $< | 109 | cmd_cc_s_c = $(CC) $(filter-out $(DEBUG_CFLAGS), $(c_flags)) $(DISABLE_LTO) -fverbose-asm -S -o $@ $< |
| 108 | 110 | ||
| 109 | $(obj)/%.s: $(src)/%.c FORCE | 111 | $(obj)/%.s: $(src)/%.c FORCE |
| 110 | $(call if_changed_dep,cc_s_c) | 112 | $(call if_changed_dep,cc_s_c) |
| @@ -118,7 +120,7 @@ $(obj)/%.i: $(src)/%.c FORCE | |||
| 118 | # These mirror gensymtypes_S and co below, keep them in synch. | 120 | # These mirror gensymtypes_S and co below, keep them in synch. |
| 119 | cmd_gensymtypes_c = \ | 121 | cmd_gensymtypes_c = \ |
| 120 | $(CPP) -D__GENKSYMS__ $(c_flags) $< | \ | 122 | $(CPP) -D__GENKSYMS__ $(c_flags) $< | \ |
| 121 | $(GENKSYMS) $(if $(1), -T $(2)) \ | 123 | scripts/genksyms/genksyms $(if $(1), -T $(2)) \ |
| 122 | $(patsubst y,-R,$(CONFIG_MODULE_REL_CRCS)) \ | 124 | $(patsubst y,-R,$(CONFIG_MODULE_REL_CRCS)) \ |
| 123 | $(if $(KBUILD_PRESERVE),-p) \ | 125 | $(if $(KBUILD_PRESERVE),-p) \ |
| 124 | -r $(firstword $(wildcard $(2:.symtypes=.symref) /dev/null)) | 126 | -r $(firstword $(wildcard $(2:.symtypes=.symref) /dev/null)) |
| @@ -312,13 +314,13 @@ $(real-obj-m:.o=.s): modkern_aflags := $(KBUILD_AFLAGS_MODULE) $(AFLAGS_MODULE) | |||
| 312 | # | 314 | # |
| 313 | # These mirror gensymtypes_c and co above, keep them in synch. | 315 | # These mirror gensymtypes_c and co above, keep them in synch. |
| 314 | cmd_gensymtypes_S = \ | 316 | cmd_gensymtypes_S = \ |
| 315 | (echo "\#include <linux/kernel.h>" ; \ | 317 | { echo "\#include <linux/kernel.h>" ; \ |
| 316 | echo "\#include <asm/asm-prototypes.h>" ; \ | 318 | echo "\#include <asm/asm-prototypes.h>" ; \ |
| 317 | $(CPP) $(a_flags) $< | \ | 319 | $(CPP) $(a_flags) $< | \ |
| 318 | grep "\<___EXPORT_SYMBOL\>" | \ | 320 | grep "\<___EXPORT_SYMBOL\>" | \ |
| 319 | sed 's/.*___EXPORT_SYMBOL[[:space:]]*\([a-zA-Z0-9_]*\)[[:space:]]*,.*/EXPORT_SYMBOL(\1);/' ) | \ | 321 | sed 's/.*___EXPORT_SYMBOL[[:space:]]*\([a-zA-Z0-9_]*\)[[:space:]]*,.*/EXPORT_SYMBOL(\1);/' ; } | \ |
| 320 | $(CPP) -D__GENKSYMS__ $(c_flags) -xc - | \ | 322 | $(CPP) -D__GENKSYMS__ $(c_flags) -xc - | \ |
| 321 | $(GENKSYMS) $(if $(1), -T $(2)) \ | 323 | scripts/genksyms/genksyms $(if $(1), -T $(2)) \ |
| 322 | $(patsubst y,-R,$(CONFIG_MODULE_REL_CRCS)) \ | 324 | $(patsubst y,-R,$(CONFIG_MODULE_REL_CRCS)) \ |
| 323 | $(if $(KBUILD_PRESERVE),-p) \ | 325 | $(if $(KBUILD_PRESERVE),-p) \ |
| 324 | -r $(firstword $(wildcard $(2:.symtypes=.symref) /dev/null)) | 326 | -r $(firstword $(wildcard $(2:.symtypes=.symref) /dev/null)) |
| @@ -394,17 +396,12 @@ $(obj)/%.asn1.c $(obj)/%.asn1.h: $(src)/%.asn1 $(objtree)/scripts/asn1_compiler | |||
| 394 | $(sort $(subdir-obj-y)): $(subdir-ym) ; | 396 | $(sort $(subdir-obj-y)): $(subdir-ym) ; |
| 395 | 397 | ||
| 396 | # | 398 | # |
| 397 | # Rule to compile a set of .o files into one .o file | 399 | # Rule to compile a set of .o files into one .a file (without symbol table) |
| 398 | # | 400 | # |
| 399 | ifdef builtin-target | 401 | ifdef builtin-target |
| 400 | 402 | ||
| 401 | # built-in.a archives are made with no symbol table or index which | ||
| 402 | # makes them small and fast, but unable to be used by the linker. | ||
| 403 | # scripts/link-vmlinux.sh builds an aggregate built-in.a with a symbol | ||
| 404 | # table and index. | ||
| 405 | quiet_cmd_ar_builtin = AR $@ | 403 | quiet_cmd_ar_builtin = AR $@ |
| 406 | cmd_ar_builtin = rm -f $@; \ | 404 | cmd_ar_builtin = rm -f $@; $(AR) rcSTP$(KBUILD_ARFLAGS) $@ $(real-prereqs) |
| 407 | $(AR) rcSTP$(KBUILD_ARFLAGS) $@ $(filter $(real-obj-y), $^) | ||
| 408 | 405 | ||
| 409 | $(builtin-target): $(real-obj-y) FORCE | 406 | $(builtin-target): $(real-obj-y) FORCE |
| 410 | $(call if_changed,ar_builtin) | 407 | $(call if_changed,ar_builtin) |
| @@ -426,13 +423,13 @@ $(modorder-target): $(subdir-ym) FORCE | |||
| 426 | $(Q)(cat /dev/null; $(modorder-cmds)) > $@ | 423 | $(Q)(cat /dev/null; $(modorder-cmds)) > $@ |
| 427 | 424 | ||
| 428 | # | 425 | # |
| 429 | # Rule to compile a set of .o files into one .a file | 426 | # Rule to compile a set of .o files into one .a file (with symbol table) |
| 430 | # | 427 | # |
| 431 | ifdef lib-target | 428 | ifdef lib-target |
| 432 | quiet_cmd_link_l_target = AR $@ | 429 | quiet_cmd_link_l_target = AR $@ |
| 433 | 430 | ||
| 434 | # lib target archives do get a symbol table and index | 431 | # lib target archives do get a symbol table and index |
| 435 | cmd_link_l_target = rm -f $@; $(AR) rcsTP$(KBUILD_ARFLAGS) $@ $(lib-y) | 432 | cmd_link_l_target = rm -f $@; $(AR) rcsTP$(KBUILD_ARFLAGS) $@ $(real-prereqs) |
| 436 | 433 | ||
| 437 | $(lib-target): $(lib-y) FORCE | 434 | $(lib-target): $(lib-y) FORCE |
| 438 | $(call if_changed,link_l_target) | 435 | $(call if_changed,link_l_target) |
| @@ -457,6 +454,10 @@ targets += $(obj)/lib-ksyms.o | |||
| 457 | 454 | ||
| 458 | endif | 455 | endif |
| 459 | 456 | ||
| 457 | # NOTE: | ||
| 458 | # Do not replace $(filter %.o,^) with $(real-prereqs). When a single object | ||
| 459 | # module is turned into a multi object module, $^ will contain header file | ||
| 460 | # dependencies recorded in the .*.cmd file. | ||
| 460 | quiet_cmd_link_multi-m = LD [M] $@ | 461 | quiet_cmd_link_multi-m = LD [M] $@ |
| 461 | cmd_link_multi-m = $(LD) $(ld_flags) -r -o $@ $(filter %.o,$^) $(cmd_secanalysis) | 462 | cmd_link_multi-m = $(LD) $(ld_flags) -r -o $@ $(filter %.o,$^) $(cmd_secanalysis) |
| 462 | 463 | ||
diff --git a/scripts/Makefile.host b/scripts/Makefile.host index 0393f75db4d4..a115259b57e7 100644 --- a/scripts/Makefile.host +++ b/scripts/Makefile.host | |||
| @@ -67,13 +67,15 @@ _hostc_flags = $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS) \ | |||
| 67 | _hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \ | 67 | _hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \ |
| 68 | $(HOSTCXXFLAGS_$(basetarget).o) | 68 | $(HOSTCXXFLAGS_$(basetarget).o) |
| 69 | 69 | ||
| 70 | ifeq ($(KBUILD_SRC),) | ||
| 71 | __hostc_flags = $(_hostc_flags) | 70 | __hostc_flags = $(_hostc_flags) |
| 72 | __hostcxx_flags = $(_hostcxx_flags) | 71 | __hostcxx_flags = $(_hostcxx_flags) |
| 73 | else | 72 | |
| 73 | ifeq ($(KBUILD_EXTMOD),) | ||
| 74 | ifneq ($(KBUILD_SRC),) | ||
| 74 | __hostc_flags = -I$(obj) $(call flags,_hostc_flags) | 75 | __hostc_flags = -I$(obj) $(call flags,_hostc_flags) |
| 75 | __hostcxx_flags = -I$(obj) $(call flags,_hostcxx_flags) | 76 | __hostcxx_flags = -I$(obj) $(call flags,_hostcxx_flags) |
| 76 | endif | 77 | endif |
| 78 | endif | ||
| 77 | 79 | ||
| 78 | hostc_flags = -Wp,-MD,$(depfile) $(__hostc_flags) | 80 | hostc_flags = -Wp,-MD,$(depfile) $(__hostc_flags) |
| 79 | hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags) | 81 | hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags) |
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 12b88d09c3a4..c0abd9a779c3 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
| @@ -137,14 +137,14 @@ _c_flags += $(if $(patsubst n%,, \ | |||
| 137 | $(CFLAGS_KCOV)) | 137 | $(CFLAGS_KCOV)) |
| 138 | endif | 138 | endif |
| 139 | 139 | ||
| 140 | # If building the kernel in a separate objtree expand all occurrences | ||
| 141 | # of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/'). | ||
| 142 | |||
| 143 | ifeq ($(KBUILD_SRC),) | ||
| 144 | __c_flags = $(_c_flags) | 140 | __c_flags = $(_c_flags) |
| 145 | __a_flags = $(_a_flags) | 141 | __a_flags = $(_a_flags) |
| 146 | __cpp_flags = $(_cpp_flags) | 142 | __cpp_flags = $(_cpp_flags) |
| 147 | else | 143 | |
| 144 | # If building the kernel in a separate objtree expand all occurrences | ||
| 145 | # of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/'). | ||
| 146 | ifeq ($(KBUILD_EXTMOD),) | ||
| 147 | ifneq ($(KBUILD_SRC),) | ||
| 148 | 148 | ||
| 149 | # -I$(obj) locates generated .h files | 149 | # -I$(obj) locates generated .h files |
| 150 | # $(call addtree,-I$(obj)) locates .h files in srctree, from generated .c files | 150 | # $(call addtree,-I$(obj)) locates .h files in srctree, from generated .c files |
| @@ -155,6 +155,7 @@ __c_flags = $(if $(obj),$(call addtree,-I$(src)) -I$(obj)) \ | |||
| 155 | __a_flags = $(call flags,_a_flags) | 155 | __a_flags = $(call flags,_a_flags) |
| 156 | __cpp_flags = $(call flags,_cpp_flags) | 156 | __cpp_flags = $(call flags,_cpp_flags) |
| 157 | endif | 157 | endif |
| 158 | endif | ||
| 158 | 159 | ||
| 159 | c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ | 160 | c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ |
| 160 | -include $(srctree)/include/linux/compiler_types.h \ | 161 | -include $(srctree)/include/linux/compiler_types.h \ |
| @@ -230,7 +231,7 @@ $(obj)/%: $(src)/%_shipped | |||
| 230 | # --------------------------------------------------------------------------- | 231 | # --------------------------------------------------------------------------- |
| 231 | 232 | ||
| 232 | quiet_cmd_ld = LD $@ | 233 | quiet_cmd_ld = LD $@ |
| 233 | cmd_ld = $(LD) $(ld_flags) $(filter-out FORCE,$^) -o $@ | 234 | cmd_ld = $(LD) $(ld_flags) $(real-prereqs) -o $@ |
| 234 | 235 | ||
| 235 | # Objcopy | 236 | # Objcopy |
| 236 | # --------------------------------------------------------------------------- | 237 | # --------------------------------------------------------------------------- |
| @@ -242,7 +243,7 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@ | |||
| 242 | # --------------------------------------------------------------------------- | 243 | # --------------------------------------------------------------------------- |
| 243 | 244 | ||
| 244 | quiet_cmd_gzip = GZIP $@ | 245 | quiet_cmd_gzip = GZIP $@ |
| 245 | cmd_gzip = cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@ | 246 | cmd_gzip = cat $(real-prereqs) | gzip -n -f -9 > $@ |
| 246 | 247 | ||
| 247 | # DTC | 248 | # DTC |
| 248 | # --------------------------------------------------------------------------- | 249 | # --------------------------------------------------------------------------- |
| @@ -270,7 +271,7 @@ DTC_FLAGS += $(DTC_FLAGS_$(basetarget)) | |||
| 270 | # Generate an assembly file to wrap the output of the device tree compiler | 271 | # Generate an assembly file to wrap the output of the device tree compiler |
| 271 | quiet_cmd_dt_S_dtb= DTB $@ | 272 | quiet_cmd_dt_S_dtb= DTB $@ |
| 272 | cmd_dt_S_dtb= \ | 273 | cmd_dt_S_dtb= \ |
| 273 | ( \ | 274 | { \ |
| 274 | echo '\#include <asm-generic/vmlinux.lds.h>'; \ | 275 | echo '\#include <asm-generic/vmlinux.lds.h>'; \ |
| 275 | echo '.section .dtb.init.rodata,"a"'; \ | 276 | echo '.section .dtb.init.rodata,"a"'; \ |
| 276 | echo '.balign STRUCT_ALIGNMENT'; \ | 277 | echo '.balign STRUCT_ALIGNMENT'; \ |
| @@ -280,7 +281,7 @@ cmd_dt_S_dtb= \ | |||
| 280 | echo '__dtb_$(subst -,_,$(*F))_end:'; \ | 281 | echo '__dtb_$(subst -,_,$(*F))_end:'; \ |
| 281 | echo '.global __dtb_$(subst -,_,$(*F))_end'; \ | 282 | echo '.global __dtb_$(subst -,_,$(*F))_end'; \ |
| 282 | echo '.balign STRUCT_ALIGNMENT'; \ | 283 | echo '.balign STRUCT_ALIGNMENT'; \ |
| 283 | ) > $@ | 284 | } > $@ |
| 284 | 285 | ||
| 285 | $(obj)/%.dtb.S: $(obj)/%.dtb FORCE | 286 | $(obj)/%.dtb.S: $(obj)/%.dtb FORCE |
| 286 | $(call if_changed,dt_S_dtb) | 287 | $(call if_changed,dt_S_dtb) |
| @@ -320,7 +321,7 @@ dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) | |||
| 320 | # append the size as a 32-bit littleendian number as gzip does. | 321 | # append the size as a 32-bit littleendian number as gzip does. |
| 321 | size_append = printf $(shell \ | 322 | size_append = printf $(shell \ |
| 322 | dec_size=0; \ | 323 | dec_size=0; \ |
| 323 | for F in $1; do \ | 324 | for F in $(real-prereqs); do \ |
| 324 | fsize=$$($(CONFIG_SHELL) $(srctree)/scripts/file-size.sh $$F); \ | 325 | fsize=$$($(CONFIG_SHELL) $(srctree)/scripts/file-size.sh $$F); \ |
| 325 | dec_size=$$(expr $$dec_size + $$fsize); \ | 326 | dec_size=$$(expr $$dec_size + $$fsize); \ |
| 326 | done; \ | 327 | done; \ |
| @@ -334,23 +335,20 @@ printf "%08x\n" $$dec_size | \ | |||
| 334 | ) | 335 | ) |
| 335 | 336 | ||
| 336 | quiet_cmd_bzip2 = BZIP2 $@ | 337 | quiet_cmd_bzip2 = BZIP2 $@ |
| 337 | cmd_bzip2 = (cat $(filter-out FORCE,$^) | \ | 338 | cmd_bzip2 = { cat $(real-prereqs) | bzip2 -9 && $(size_append); } > $@ |
| 338 | bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ | ||
| 339 | 339 | ||
| 340 | # Lzma | 340 | # Lzma |
| 341 | # --------------------------------------------------------------------------- | 341 | # --------------------------------------------------------------------------- |
| 342 | 342 | ||
| 343 | quiet_cmd_lzma = LZMA $@ | 343 | quiet_cmd_lzma = LZMA $@ |
| 344 | cmd_lzma = (cat $(filter-out FORCE,$^) | \ | 344 | cmd_lzma = { cat $(real-prereqs) | lzma -9 && $(size_append); } > $@ |
| 345 | lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ | ||
| 346 | 345 | ||
| 347 | quiet_cmd_lzo = LZO $@ | 346 | quiet_cmd_lzo = LZO $@ |
| 348 | cmd_lzo = (cat $(filter-out FORCE,$^) | \ | 347 | cmd_lzo = { cat $(real-prereqs) | lzop -9 && $(size_append); } > $@ |
| 349 | lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ | ||
| 350 | 348 | ||
| 351 | quiet_cmd_lz4 = LZ4 $@ | 349 | quiet_cmd_lz4 = LZ4 $@ |
| 352 | cmd_lz4 = (cat $(filter-out FORCE,$^) | \ | 350 | cmd_lz4 = { cat $(real-prereqs) | lz4c -l -c1 stdin stdout && \ |
| 353 | lz4c -l -c1 stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@ | 351 | $(size_append); } > $@ |
| 354 | 352 | ||
| 355 | # U-Boot mkimage | 353 | # U-Boot mkimage |
| 356 | # --------------------------------------------------------------------------- | 354 | # --------------------------------------------------------------------------- |
| @@ -392,13 +390,11 @@ quiet_cmd_uimage = UIMAGE $@ | |||
| 392 | # big dictionary would increase the memory usage too much in the multi-call | 390 | # big dictionary would increase the memory usage too much in the multi-call |
| 393 | # decompression mode. A BCJ filter isn't used either. | 391 | # decompression mode. A BCJ filter isn't used either. |
| 394 | quiet_cmd_xzkern = XZKERN $@ | 392 | quiet_cmd_xzkern = XZKERN $@ |
| 395 | cmd_xzkern = (cat $(filter-out FORCE,$^) | \ | 393 | cmd_xzkern = { cat $(real-prereqs) | sh $(srctree)/scripts/xz_wrap.sh && \ |
| 396 | sh $(srctree)/scripts/xz_wrap.sh && \ | 394 | $(size_append); } > $@ |
| 397 | $(call size_append, $(filter-out FORCE,$^))) > $@ | ||
| 398 | 395 | ||
| 399 | quiet_cmd_xzmisc = XZMISC $@ | 396 | quiet_cmd_xzmisc = XZMISC $@ |
| 400 | cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ | 397 | cmd_xzmisc = cat $(real-prereqs) | xz --check=crc32 --lzma2=dict=1MiB > $@ |
| 401 | xz --check=crc32 --lzma2=dict=1MiB) > $@ | ||
| 402 | 398 | ||
| 403 | # ASM offsets | 399 | # ASM offsets |
| 404 | # --------------------------------------------------------------------------- | 400 | # --------------------------------------------------------------------------- |
diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost index 7d4af0d0accb..c0b7f526f95e 100644 --- a/scripts/Makefile.modpost +++ b/scripts/Makefile.modpost | |||
| @@ -122,7 +122,7 @@ quiet_cmd_ld_ko_o = LD [M] $@ | |||
| 122 | cmd_ld_ko_o = \ | 122 | cmd_ld_ko_o = \ |
| 123 | $(LD) -r $(KBUILD_LDFLAGS) \ | 123 | $(LD) -r $(KBUILD_LDFLAGS) \ |
| 124 | $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \ | 124 | $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \ |
| 125 | -o $@ $(filter-out FORCE,$^) ; \ | 125 | -o $@ $(real-prereqs) ; \ |
| 126 | $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) | 126 | $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) |
| 127 | 127 | ||
| 128 | $(modules): %.ko :%.o %.mod.o FORCE | 128 | $(modules): %.ko :%.o %.mod.o FORCE |
diff --git a/scripts/clang-version.sh b/scripts/clang-version.sh index e65fbc3079d4..6fabf0695761 100755 --- a/scripts/clang-version.sh +++ b/scripts/clang-version.sh | |||
| @@ -1,14 +1,10 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | # SPDX-License-Identifier: GPL-2.0 | 2 | # SPDX-License-Identifier: GPL-2.0 |
| 3 | # | 3 | # |
| 4 | # clang-version [-p] clang-command | 4 | # clang-version clang-command |
| 5 | # | ||
| 6 | # Prints the compiler version of `clang-command' in a canonical 4-digit form | ||
| 7 | # such as `0500' for clang-5.0 etc. | ||
| 8 | # | ||
| 9 | # With the -p option, prints the patchlevel as well, for example `050001' for | ||
| 10 | # clang-5.0.1 etc. | ||
| 11 | # | 5 | # |
| 6 | # Print the compiler version of `clang-command' in a 5 or 6-digit form | ||
| 7 | # such as `50001' for clang-5.0.1 etc. | ||
| 12 | 8 | ||
| 13 | compiler="$*" | 9 | compiler="$*" |
| 14 | 10 | ||
diff --git a/scripts/gcc-version.sh b/scripts/gcc-version.sh index 11bb909845e7..ae353432539b 100755 --- a/scripts/gcc-version.sh +++ b/scripts/gcc-version.sh | |||
| @@ -1,33 +1,20 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | # SPDX-License-Identifier: GPL-2.0 | 2 | # SPDX-License-Identifier: GPL-2.0 |
| 3 | # | 3 | # |
| 4 | # gcc-version [-p] gcc-command | 4 | # gcc-version gcc-command |
| 5 | # | ||
| 6 | # Prints the gcc version of `gcc-command' in a canonical 4-digit form | ||
| 7 | # such as `0295' for gcc-2.95, `0303' for gcc-3.3, etc. | ||
| 8 | # | ||
| 9 | # With the -p option, prints the patchlevel as well, for example `029503' for | ||
| 10 | # gcc-2.95.3, `030301' for gcc-3.3.1, etc. | ||
| 11 | # | 5 | # |
| 12 | 6 | # Print the gcc version of `gcc-command' in a 5 or 6-digit form | |
| 13 | if [ "$1" = "-p" ] ; then | 7 | # such as `29503' for gcc-2.95.3, `30301' for gcc-3.3.1, etc. |
| 14 | with_patchlevel=1; | ||
| 15 | shift; | ||
| 16 | fi | ||
| 17 | 8 | ||
| 18 | compiler="$*" | 9 | compiler="$*" |
| 19 | 10 | ||
| 20 | if [ ${#compiler} -eq 0 ]; then | 11 | if [ ${#compiler} -eq 0 ]; then |
| 21 | echo "Error: No compiler specified." | 12 | echo "Error: No compiler specified." >&2 |
| 22 | printf "Usage:\n\t$0 <gcc-command>\n" | 13 | printf "Usage:\n\t$0 <gcc-command>\n" >&2 |
| 23 | exit 1 | 14 | exit 1 |
| 24 | fi | 15 | fi |
| 25 | 16 | ||
| 26 | MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1) | 17 | MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1) |
| 27 | MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1) | 18 | MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1) |
| 28 | if [ "x$with_patchlevel" != "x" ] ; then | 19 | PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -x c - | tail -n 1) |
| 29 | PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -x c - | tail -n 1) | 20 | printf "%d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL |
| 30 | printf "%02d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL | ||
| 31 | else | ||
| 32 | printf "%02d%02d\\n" $MAJOR $MINOR | ||
| 33 | fi | ||
diff --git a/scripts/gdb/linux/Makefile b/scripts/gdb/linux/Makefile index aba23be985e4..3df395a9c2ce 100644 --- a/scripts/gdb/linux/Makefile +++ b/scripts/gdb/linux/Makefile | |||
| @@ -1,24 +1,25 @@ | |||
| 1 | # SPDX-License-Identifier: GPL-2.0 | 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | always := gdb-scripts | ||
| 3 | 2 | ||
| 4 | SRCTREE := $(abspath $(srctree)) | ||
| 5 | |||
| 6 | $(obj)/gdb-scripts: | ||
| 7 | ifneq ($(KBUILD_SRC),) | 3 | ifneq ($(KBUILD_SRC),) |
| 8 | $(Q)ln -fsn $(SRCTREE)/$(obj)/*.py $(objtree)/$(obj) | 4 | |
| 5 | symlinks := $(patsubst $(srctree)/$(src)/%,%,$(wildcard $(srctree)/$(src)/*.py)) | ||
| 6 | |||
| 7 | quiet_cmd_symlink = SYMLINK $@ | ||
| 8 | cmd_symlink = ln -fsn $(patsubst $(obj)/%,$(abspath $(srctree))/$(src)/%,$@) $@ | ||
| 9 | |||
| 10 | extra-y += $(symlinks) | ||
| 11 | $(addprefix $(obj)/, $(symlinks)): FORCE | ||
| 12 | $(call if_changed,symlink) | ||
| 13 | |||
| 9 | endif | 14 | endif |
| 10 | @: | ||
| 11 | 15 | ||
| 12 | quiet_cmd_gen_constants_py = GEN $@ | 16 | quiet_cmd_gen_constants_py = GEN $@ |
| 13 | cmd_gen_constants_py = \ | 17 | cmd_gen_constants_py = \ |
| 14 | $(CPP) -E -x c -P $(c_flags) $< > $@ ;\ | 18 | $(CPP) -E -x c -P $(c_flags) $< > $@ ;\ |
| 15 | sed -i '1,/<!-- end-c-headers -->/d;' $@ | 19 | sed -i '1,/<!-- end-c-headers -->/d;' $@ |
| 16 | 20 | ||
| 17 | targets += constants.py | 21 | extra-y += constants.py |
| 18 | $(obj)/constants.py: $(SRCTREE)/$(obj)/constants.py.in FORCE | 22 | $(obj)/constants.py: $(src)/constants.py.in FORCE |
| 19 | $(call if_changed_dep,gen_constants_py) | 23 | $(call if_changed_dep,gen_constants_py) |
| 20 | 24 | ||
| 21 | build_constants_py: $(obj)/constants.py | 25 | clean-files := *.pyc *.pyo |
| 22 | @: | ||
| 23 | |||
| 24 | clean-files := *.pyc *.pyo $(if $(KBUILD_SRC),*.py) $(obj)/constants.py | ||
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index f75e7bda4889..e17837f1d3f2 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c | |||
| @@ -62,11 +62,11 @@ static int all_symbols = 0; | |||
| 62 | static int absolute_percpu = 0; | 62 | static int absolute_percpu = 0; |
| 63 | static int base_relative = 0; | 63 | static int base_relative = 0; |
| 64 | 64 | ||
| 65 | int token_profit[0x10000]; | 65 | static int token_profit[0x10000]; |
| 66 | 66 | ||
| 67 | /* the table that holds the result of the compression */ | 67 | /* the table that holds the result of the compression */ |
| 68 | unsigned char best_table[256][2]; | 68 | static unsigned char best_table[256][2]; |
| 69 | unsigned char best_table_len[256]; | 69 | static unsigned char best_table_len[256]; |
| 70 | 70 | ||
| 71 | 71 | ||
| 72 | static void usage(void) | 72 | static void usage(void) |
| @@ -80,7 +80,7 @@ static void usage(void) | |||
| 80 | * This ignores the intensely annoying "mapping symbols" found | 80 | * This ignores the intensely annoying "mapping symbols" found |
| 81 | * in ARM ELF files: $a, $t and $d. | 81 | * in ARM ELF files: $a, $t and $d. |
| 82 | */ | 82 | */ |
| 83 | static inline int is_arm_mapping_symbol(const char *str) | 83 | static int is_arm_mapping_symbol(const char *str) |
| 84 | { | 84 | { |
| 85 | return str[0] == '$' && strchr("axtd", str[1]) | 85 | return str[0] == '$' && strchr("axtd", str[1]) |
| 86 | && (str[2] == '\0' || str[2] == '.'); | 86 | && (str[2] == '\0' || str[2] == '.'); |
| @@ -331,7 +331,7 @@ static void write_src(void) | |||
| 331 | unsigned int *markers; | 331 | unsigned int *markers; |
| 332 | char buf[KSYM_NAME_LEN]; | 332 | char buf[KSYM_NAME_LEN]; |
| 333 | 333 | ||
| 334 | printf("#include <asm/types.h>\n"); | 334 | printf("#include <asm/bitsperlong.h>\n"); |
| 335 | printf("#if BITS_PER_LONG == 64\n"); | 335 | printf("#if BITS_PER_LONG == 64\n"); |
| 336 | printf("#define PTR .quad\n"); | 336 | printf("#define PTR .quad\n"); |
| 337 | printf("#define ALGN .balign 8\n"); | 337 | printf("#define ALGN .balign 8\n"); |
| @@ -596,9 +596,6 @@ static void insert_real_symbols_in_table(void) | |||
| 596 | { | 596 | { |
| 597 | unsigned int i, j, c; | 597 | unsigned int i, j, c; |
| 598 | 598 | ||
| 599 | memset(best_table, 0, sizeof(best_table)); | ||
| 600 | memset(best_table_len, 0, sizeof(best_table_len)); | ||
| 601 | |||
| 602 | for (i = 0; i < table_cnt; i++) { | 599 | for (i = 0; i < table_cnt; i++) { |
| 603 | for (j = 0; j < table[i].len; j++) { | 600 | for (j = 0; j < table[i].len; j++) { |
| 604 | c = table[i].sym[j]; | 601 | c = table[i].sym[j]; |
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index da89ef788a8d..ef3678c24bab 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c | |||
| @@ -488,7 +488,6 @@ int main(int ac, char **av) | |||
| 488 | const char *progname = av[0]; | 488 | const char *progname = av[0]; |
| 489 | int opt; | 489 | int opt; |
| 490 | const char *name, *defconfig_file = NULL /* gcc uninit */; | 490 | const char *name, *defconfig_file = NULL /* gcc uninit */; |
| 491 | struct stat tmpstat; | ||
| 492 | int no_conf_write = 0; | 491 | int no_conf_write = 0; |
| 493 | 492 | ||
| 494 | tty_stdio = isatty(0) && isatty(1); | 493 | tty_stdio = isatty(0) && isatty(1); |
| @@ -560,18 +559,6 @@ int main(int ac, char **av) | |||
| 560 | name = av[optind]; | 559 | name = av[optind]; |
| 561 | conf_parse(name); | 560 | conf_parse(name); |
| 562 | //zconfdump(stdout); | 561 | //zconfdump(stdout); |
| 563 | if (sync_kconfig) { | ||
| 564 | name = conf_get_configname(); | ||
| 565 | if (stat(name, &tmpstat)) { | ||
| 566 | fprintf(stderr, "***\n" | ||
| 567 | "*** Configuration file \"%s\" not found!\n" | ||
| 568 | "***\n" | ||
| 569 | "*** Please run some configurator (e.g. \"make oldconfig\" or\n" | ||
| 570 | "*** \"make menuconfig\" or \"make xconfig\").\n" | ||
| 571 | "***\n", name); | ||
| 572 | exit(1); | ||
| 573 | } | ||
| 574 | } | ||
| 575 | 562 | ||
| 576 | switch (input_mode) { | 563 | switch (input_mode) { |
| 577 | case defconfig: | 564 | case defconfig: |
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index c8cf45362bd6..bc7f1fc1f55b 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh | |||
| @@ -3,22 +3,17 @@ | |||
| 3 | # | 3 | # |
| 4 | # link vmlinux | 4 | # link vmlinux |
| 5 | # | 5 | # |
| 6 | # vmlinux is linked from the objects selected by $(KBUILD_VMLINUX_INIT) and | 6 | # vmlinux is linked from the objects selected by $(KBUILD_VMLINUX_OBJS) and |
| 7 | # $(KBUILD_VMLINUX_MAIN) and $(KBUILD_VMLINUX_LIBS). Most are built-in.a files | 7 | # $(KBUILD_VMLINUX_LIBS). Most are built-in.a files from top-level directories |
| 8 | # from top-level directories in the kernel tree, others are specified in | 8 | # in the kernel tree, others are specified in arch/$(ARCH)/Makefile. |
| 9 | # arch/$(ARCH)/Makefile. Ordering when linking is important, and | 9 | # $(KBUILD_VMLINUX_LIBS) are archives which are linked conditionally |
| 10 | # $(KBUILD_VMLINUX_INIT) must be first. $(KBUILD_VMLINUX_LIBS) are archives | 10 | # (not within --whole-archive), and do not require symbol indexes added. |
| 11 | # which are linked conditionally (not within --whole-archive), and do not | ||
| 12 | # require symbol indexes added. | ||
| 13 | # | 11 | # |
| 14 | # vmlinux | 12 | # vmlinux |
| 15 | # ^ | 13 | # ^ |
| 16 | # | | 14 | # | |
| 17 | # +-< $(KBUILD_VMLINUX_INIT) | 15 | # +--< $(KBUILD_VMLINUX_OBJS) |
| 18 | # | +--< init/version.o + more | 16 | # | +--< init/built-in.a drivers/built-in.a mm/built-in.a + more |
| 19 | # | | ||
| 20 | # +--< $(KBUILD_VMLINUX_MAIN) | ||
| 21 | # | +--< drivers/built-in.a mm/built-in.a + more | ||
| 22 | # | | 17 | # | |
| 23 | # +--< $(KBUILD_VMLINUX_LIBS) | 18 | # +--< $(KBUILD_VMLINUX_LIBS) |
| 24 | # | +--< lib/lib.a + more | 19 | # | +--< lib/lib.a + more |
| @@ -44,24 +39,6 @@ info() | |||
| 44 | fi | 39 | fi |
| 45 | } | 40 | } |
| 46 | 41 | ||
| 47 | # Thin archive build here makes a final archive with symbol table and indexes | ||
| 48 | # from vmlinux objects INIT and MAIN, which can be used as input to linker. | ||
| 49 | # KBUILD_VMLINUX_LIBS archives should already have symbol table and indexes | ||
| 50 | # added. | ||
| 51 | # | ||
| 52 | # Traditional incremental style of link does not require this step | ||
| 53 | # | ||
| 54 | # built-in.a output file | ||
| 55 | # | ||
| 56 | archive_builtin() | ||
| 57 | { | ||
| 58 | info AR built-in.a | ||
| 59 | rm -f built-in.a; | ||
| 60 | ${AR} rcsTP${KBUILD_ARFLAGS} built-in.a \ | ||
| 61 | ${KBUILD_VMLINUX_INIT} \ | ||
| 62 | ${KBUILD_VMLINUX_MAIN} | ||
| 63 | } | ||
| 64 | |||
| 65 | # Link of vmlinux.o used for section mismatch analysis | 42 | # Link of vmlinux.o used for section mismatch analysis |
| 66 | # ${1} output file | 43 | # ${1} output file |
| 67 | modpost_link() | 44 | modpost_link() |
| @@ -69,7 +46,7 @@ modpost_link() | |||
| 69 | local objects | 46 | local objects |
| 70 | 47 | ||
| 71 | objects="--whole-archive \ | 48 | objects="--whole-archive \ |
| 72 | built-in.a \ | 49 | ${KBUILD_VMLINUX_OBJS} \ |
| 73 | --no-whole-archive \ | 50 | --no-whole-archive \ |
| 74 | --start-group \ | 51 | --start-group \ |
| 75 | ${KBUILD_VMLINUX_LIBS} \ | 52 | ${KBUILD_VMLINUX_LIBS} \ |
| @@ -88,7 +65,7 @@ vmlinux_link() | |||
| 88 | 65 | ||
| 89 | if [ "${SRCARCH}" != "um" ]; then | 66 | if [ "${SRCARCH}" != "um" ]; then |
| 90 | objects="--whole-archive \ | 67 | objects="--whole-archive \ |
| 91 | built-in.a \ | 68 | ${KBUILD_VMLINUX_OBJS} \ |
| 92 | --no-whole-archive \ | 69 | --no-whole-archive \ |
| 93 | --start-group \ | 70 | --start-group \ |
| 94 | ${KBUILD_VMLINUX_LIBS} \ | 71 | ${KBUILD_VMLINUX_LIBS} \ |
| @@ -99,7 +76,7 @@ vmlinux_link() | |||
| 99 | -T ${lds} ${objects} | 76 | -T ${lds} ${objects} |
| 100 | else | 77 | else |
| 101 | objects="-Wl,--whole-archive \ | 78 | objects="-Wl,--whole-archive \ |
| 102 | built-in.a \ | 79 | ${KBUILD_VMLINUX_OBJS} \ |
| 103 | -Wl,--no-whole-archive \ | 80 | -Wl,--no-whole-archive \ |
| 104 | -Wl,--start-group \ | 81 | -Wl,--start-group \ |
| 105 | ${KBUILD_VMLINUX_LIBS} \ | 82 | ${KBUILD_VMLINUX_LIBS} \ |
| @@ -160,7 +137,6 @@ cleanup() | |||
| 160 | rm -f .tmp_System.map | 137 | rm -f .tmp_System.map |
| 161 | rm -f .tmp_kallsyms* | 138 | rm -f .tmp_kallsyms* |
| 162 | rm -f .tmp_vmlinux* | 139 | rm -f .tmp_vmlinux* |
| 163 | rm -f built-in.a | ||
| 164 | rm -f System.map | 140 | rm -f System.map |
| 165 | rm -f vmlinux | 141 | rm -f vmlinux |
| 166 | rm -f vmlinux.o | 142 | rm -f vmlinux.o |
| @@ -217,8 +193,6 @@ fi; | |||
| 217 | # final build of init/ | 193 | # final build of init/ |
| 218 | ${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init | 194 | ${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init |
| 219 | 195 | ||
| 220 | archive_builtin | ||
| 221 | |||
| 222 | #link vmlinux.o | 196 | #link vmlinux.o |
| 223 | info LD vmlinux.o | 197 | info LD vmlinux.o |
| 224 | modpost_link vmlinux.o | 198 | modpost_link vmlinux.o |
diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h index 87f1fc9801d7..2339f86126cb 100755 --- a/scripts/mkcompile_h +++ b/scripts/mkcompile_h | |||
| @@ -62,7 +62,7 @@ UTS_TRUNCATE="cut -b -$UTS_LEN" | |||
| 62 | 62 | ||
| 63 | # Generate a temporary compile.h | 63 | # Generate a temporary compile.h |
| 64 | 64 | ||
| 65 | ( echo /\* This file is auto generated, version $VERSION \*/ | 65 | { echo /\* This file is auto generated, version $VERSION \*/ |
| 66 | if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi | 66 | if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi |
| 67 | 67 | ||
| 68 | echo \#define UTS_MACHINE \"$ARCH\" | 68 | echo \#define UTS_MACHINE \"$ARCH\" |
| @@ -73,7 +73,7 @@ UTS_TRUNCATE="cut -b -$UTS_LEN" | |||
| 73 | echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\" | 73 | echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\" |
| 74 | 74 | ||
| 75 | echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | grep ' version ' | sed 's/[[:space:]]*$//'`\" | 75 | echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | grep ' version ' | sed 's/[[:space:]]*$//'`\" |
| 76 | ) > .tmpcompile | 76 | } > .tmpcompile |
| 77 | 77 | ||
| 78 | # Only replace the real compile.h if the new one is different, | 78 | # Only replace the real compile.h if the new one is different, |
| 79 | # in order to preserve the timestamp and avoid unnecessary | 79 | # in order to preserve the timestamp and avoid unnecessary |
diff --git a/scripts/package/Makefile b/scripts/package/Makefile index 453fecee62f0..2c6de21e5152 100644 --- a/scripts/package/Makefile +++ b/scripts/package/Makefile | |||
| @@ -59,7 +59,7 @@ rpm-pkg: FORCE | |||
| 59 | # binrpm-pkg | 59 | # binrpm-pkg |
| 60 | # --------------------------------------------------------------------------- | 60 | # --------------------------------------------------------------------------- |
| 61 | binrpm-pkg: FORCE | 61 | binrpm-pkg: FORCE |
| 62 | $(MAKE) KBUILD_SRC= | 62 | $(MAKE) -f $(srctree)/Makefile |
| 63 | $(CONFIG_SHELL) $(MKSPEC) prebuilt > $(objtree)/binkernel.spec | 63 | $(CONFIG_SHELL) $(MKSPEC) prebuilt > $(objtree)/binkernel.spec |
| 64 | +rpmbuild $(RPMOPTS) --define "_builddir $(objtree)" --target \ | 64 | +rpmbuild $(RPMOPTS) --define "_builddir $(objtree)" --target \ |
| 65 | $(UTS_MACHINE) -bb $(objtree)/binkernel.spec | 65 | $(UTS_MACHINE) -bb $(objtree)/binkernel.spec |
| @@ -72,11 +72,11 @@ deb-pkg: FORCE | |||
| 72 | $(call cmd,src_tar,$(KDEB_SOURCENAME)) | 72 | $(call cmd,src_tar,$(KDEB_SOURCENAME)) |
| 73 | origversion=$$(dpkg-parsechangelog -SVersion |sed 's/-[^-]*$$//');\ | 73 | origversion=$$(dpkg-parsechangelog -SVersion |sed 's/-[^-]*$$//');\ |
| 74 | mv $(KDEB_SOURCENAME).tar.gz ../$(KDEB_SOURCENAME)_$${origversion}.orig.tar.gz | 74 | mv $(KDEB_SOURCENAME).tar.gz ../$(KDEB_SOURCENAME)_$${origversion}.orig.tar.gz |
| 75 | +dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) -i.git -us -uc | 75 | +dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) $(DPKG_FLAGS) -i.git -us -uc |
| 76 | 76 | ||
| 77 | bindeb-pkg: FORCE | 77 | bindeb-pkg: FORCE |
| 78 | $(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian | 78 | $(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian |
| 79 | +dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) -b -nc -uc | 79 | +dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) $(DPKG_FLAGS) -b -nc -uc |
| 80 | 80 | ||
| 81 | intdeb-pkg: FORCE | 81 | intdeb-pkg: FORCE |
| 82 | +$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb | 82 | +$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb |
| @@ -102,7 +102,7 @@ clean-dirs += $(objtree)/snap/ | |||
| 102 | # tarball targets | 102 | # tarball targets |
| 103 | # --------------------------------------------------------------------------- | 103 | # --------------------------------------------------------------------------- |
| 104 | tar%pkg: FORCE | 104 | tar%pkg: FORCE |
| 105 | $(MAKE) KBUILD_SRC= | 105 | $(MAKE) -f $(srctree)/Makefile |
| 106 | $(CONFIG_SHELL) $(srctree)/scripts/package/buildtar $@ | 106 | $(CONFIG_SHELL) $(srctree)/scripts/package/buildtar $@ |
| 107 | 107 | ||
| 108 | clean-dirs += $(objtree)/tar-install/ | 108 | clean-dirs += $(objtree)/tar-install/ |
diff --git a/scripts/package/builddeb b/scripts/package/builddeb index f43a274f4f1d..8ac25d10a6ad 100755 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb | |||
| @@ -86,12 +86,12 @@ cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path" | |||
| 86 | if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then | 86 | if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then |
| 87 | # Only some architectures with OF support have this target | 87 | # Only some architectures with OF support have this target |
| 88 | if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then | 88 | if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then |
| 89 | $MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install | 89 | $MAKE -f $srctree/Makefile INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install |
| 90 | fi | 90 | fi |
| 91 | fi | 91 | fi |
| 92 | 92 | ||
| 93 | if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then | 93 | if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then |
| 94 | INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install | 94 | INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_install |
| 95 | rm -f "$tmpdir/lib/modules/$version/build" | 95 | rm -f "$tmpdir/lib/modules/$version/build" |
| 96 | rm -f "$tmpdir/lib/modules/$version/source" | 96 | rm -f "$tmpdir/lib/modules/$version/source" |
| 97 | if [ "$ARCH" = "um" ] ; then | 97 | if [ "$ARCH" = "um" ] ; then |
| @@ -113,14 +113,14 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then | |||
| 113 | # resign stripped modules | 113 | # resign stripped modules |
| 114 | MODULE_SIG_ALL="$(grep -s '^CONFIG_MODULE_SIG_ALL=y' $KCONFIG_CONFIG || true)" | 114 | MODULE_SIG_ALL="$(grep -s '^CONFIG_MODULE_SIG_ALL=y' $KCONFIG_CONFIG || true)" |
| 115 | if [ -n "$MODULE_SIG_ALL" ]; then | 115 | if [ -n "$MODULE_SIG_ALL" ]; then |
| 116 | INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_sign | 116 | INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_sign |
| 117 | fi | 117 | fi |
| 118 | fi | 118 | fi |
| 119 | fi | 119 | fi |
| 120 | 120 | ||
| 121 | if [ "$ARCH" != "um" ]; then | 121 | if [ "$ARCH" != "um" ]; then |
| 122 | $MAKE headers_check KBUILD_SRC= | 122 | $MAKE -f $srctree/Makefile headers_check |
| 123 | $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" | 123 | $MAKE -f $srctree/Makefile headers_install INSTALL_HDR_PATH="$libc_headers_dir/usr" |
| 124 | fi | 124 | fi |
| 125 | 125 | ||
| 126 | # Install the maintainer scripts | 126 | # Install the maintainer scripts |
diff --git a/scripts/package/buildtar b/scripts/package/buildtar index d624a07a4e77..cfd2a4a3fe42 100755 --- a/scripts/package/buildtar +++ b/scripts/package/buildtar | |||
| @@ -57,7 +57,7 @@ dirs=boot | |||
| 57 | # Try to install modules | 57 | # Try to install modules |
| 58 | # | 58 | # |
| 59 | if grep -q '^CONFIG_MODULES=y' "${KCONFIG_CONFIG}"; then | 59 | if grep -q '^CONFIG_MODULES=y' "${KCONFIG_CONFIG}"; then |
| 60 | make ARCH="${ARCH}" O="${objtree}" KBUILD_SRC= INSTALL_MOD_PATH="${tmpdir}" modules_install | 60 | make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_MOD_PATH="${tmpdir}" modules_install |
| 61 | dirs="$dirs lib" | 61 | dirs="$dirs lib" |
| 62 | fi | 62 | fi |
| 63 | 63 | ||
diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian index edcad61fe3cd..f030961c5165 100755 --- a/scripts/package/mkdebian +++ b/scripts/package/mkdebian | |||
| @@ -205,13 +205,15 @@ EOF | |||
| 205 | cat <<EOF > debian/rules | 205 | cat <<EOF > debian/rules |
| 206 | #!$(command -v $MAKE) -f | 206 | #!$(command -v $MAKE) -f |
| 207 | 207 | ||
| 208 | srctree ?= . | ||
| 209 | |||
| 208 | build: | 210 | build: |
| 209 | \$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \ | 211 | \$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \ |
| 210 | KBUILD_BUILD_VERSION=${revision} KBUILD_SRC= | 212 | KBUILD_BUILD_VERSION=${revision} -f \$(srctree)/Makefile |
| 211 | 213 | ||
| 212 | binary-arch: | 214 | binary-arch: |
| 213 | \$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \ | 215 | \$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \ |
| 214 | KBUILD_BUILD_VERSION=${revision} KBUILD_SRC= intdeb-pkg | 216 | KBUILD_BUILD_VERSION=${revision} -f \$(srctree)/Makefile intdeb-pkg |
| 215 | 217 | ||
| 216 | clean: | 218 | clean: |
| 217 | rm -rf debian/*tmp debian/files | 219 | rm -rf debian/*tmp debian/files |
