aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-03-10 20:48:21 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-03-10 20:48:21 -0400
commitffd602eb4693bbb49b301fa059b109bbdebf9524 (patch)
treea7be15ffb7fe1a23dde4dc2831670f3abed6ce95 /scripts
parent5af7f115886f7ec193171e2e49b8000ddd1e7147 (diff)
parent9250d20e9ecedab6aa331a127fbfc1272383ed72 (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.include21
-rw-r--r--scripts/Kconfig.include2
-rw-r--r--scripts/Makefile3
-rw-r--r--scripts/Makefile.build29
-rw-r--r--scripts/Makefile.host6
-rw-r--r--scripts/Makefile.lib42
-rw-r--r--scripts/Makefile.modpost2
-rwxr-xr-xscripts/clang-version.sh10
-rwxr-xr-xscripts/gcc-version.sh27
-rw-r--r--scripts/gdb/linux/Makefile25
-rw-r--r--scripts/kallsyms.c13
-rw-r--r--scripts/kconfig/conf.c13
-rwxr-xr-xscripts/link-vmlinux.sh46
-rwxr-xr-xscripts/mkcompile_h4
-rw-r--r--scripts/package/Makefile8
-rwxr-xr-xscripts/package/builddeb10
-rwxr-xr-xscripts/package/buildtar2
-rwxr-xr-xscripts/package/mkdebian6
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)
24basetarget = $(basename $(notdir $@)) 24basetarget = $(basename $(notdir $@))
25 25
26### 26###
27# real prerequisites without phony targets
28real-prereqs = $(filter-out $(PHONY), $^)
29
30###
27# Escape single quote for use in echo statements 31# Escape single quote for use in echo statements
28escsq = $(subst $(squote),'\$(squote)',$1) 32escsq = $(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
72cc-cross-prefix = \ 76cc-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
80TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/) 80TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/)
@@ -134,12 +134,9 @@ cc-option-yn = $(call try-run,\
134cc-disable-warning = $(call try-run,\ 134cc-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
138cc-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)
142cc-ifversion = $(shell [ $(cc-version) $(1) $(2) ] && echo $(3) || echo $(4)) 139cc-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)
27ld-option = $(success,$(LD) -v $(1)) 27ld-option = $(success,$(LD) -v $(1))
28 28
29# gcc version including patch level 29# gcc version including patch level
30gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed 's/^0*//') 30gcc-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
39subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins 39subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins
40subdir-$(CONFIG_MODVERSIONS) += genksyms 40subdir-$(CONFIG_MODVERSIONS) += genksyms
41subdir-$(CONFIG_SECURITY_SELINUX) += selinux 41subdir-$(CONFIG_SECURITY_SELINUX) += selinux
42subdir-$(CONFIG_GDB_SCRIPTS) += gdb
43 42
44# Let clean descend into subdirs 43# Let clean descend into subdirs
45subdir- += basic dtc kconfig mod package 44subdir- += 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)),)
63builtin-target := $(obj)/built-in.a 63builtin-target := $(obj)/built-in.a
64endif 64endif
65 65
66ifdef CONFIG_MODULES
66modorder-target := $(obj)/modules.order 67modorder-target := $(obj)/modules.order
68endif
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 = \
104quiet_modtag = $(if $(part-of-module),[M], ) 106quiet_modtag = $(if $(part-of-module),[M], )
105 107
106quiet_cmd_cc_s_c = CC $(quiet_modtag) $@ 108quiet_cmd_cc_s_c = CC $(quiet_modtag) $@
107cmd_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.
119cmd_gensymtypes_c = \ 121cmd_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.
314cmd_gensymtypes_S = \ 316cmd_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#
399ifdef builtin-target 401ifdef 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.
405quiet_cmd_ar_builtin = AR $@ 403quiet_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#
431ifdef lib-target 428ifdef lib-target
432quiet_cmd_link_l_target = AR $@ 429quiet_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
435cmd_link_l_target = rm -f $@; $(AR) rcsTP$(KBUILD_ARFLAGS) $@ $(lib-y) 432cmd_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
458endif 455endif
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.
460quiet_cmd_link_multi-m = LD [M] $@ 461quiet_cmd_link_multi-m = LD [M] $@
461cmd_link_multi-m = $(LD) $(ld_flags) -r -o $@ $(filter %.o,$^) $(cmd_secanalysis) 462cmd_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
70ifeq ($(KBUILD_SRC),)
71__hostc_flags = $(_hostc_flags) 70__hostc_flags = $(_hostc_flags)
72__hostcxx_flags = $(_hostcxx_flags) 71__hostcxx_flags = $(_hostcxx_flags)
73else 72
73ifeq ($(KBUILD_EXTMOD),)
74ifneq ($(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)
76endif 77endif
78endif
77 79
78hostc_flags = -Wp,-MD,$(depfile) $(__hostc_flags) 80hostc_flags = -Wp,-MD,$(depfile) $(__hostc_flags)
79hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags) 81hostcxx_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))
138endif 138endif
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
143ifeq ($(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)
147else 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 '/').
146ifeq ($(KBUILD_EXTMOD),)
147ifneq ($(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)
157endif 157endif
158endif
158 159
159c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ 160c_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
232quiet_cmd_ld = LD $@ 233quiet_cmd_ld = LD $@
233cmd_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
244quiet_cmd_gzip = GZIP $@ 245quiet_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
271quiet_cmd_dt_S_dtb= DTB $@ 272quiet_cmd_dt_S_dtb= DTB $@
272cmd_dt_S_dtb= \ 273cmd_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.
321size_append = printf $(shell \ 322size_append = printf $(shell \
322dec_size=0; \ 323dec_size=0; \
323for F in $1; do \ 324for 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); \
326done; \ 327done; \
@@ -334,23 +335,20 @@ printf "%08x\n" $$dec_size | \
334) 335)
335 336
336quiet_cmd_bzip2 = BZIP2 $@ 337quiet_cmd_bzip2 = BZIP2 $@
337cmd_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
343quiet_cmd_lzma = LZMA $@ 343quiet_cmd_lzma = LZMA $@
344cmd_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
347quiet_cmd_lzo = LZO $@ 346quiet_cmd_lzo = LZO $@
348cmd_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
351quiet_cmd_lz4 = LZ4 $@ 349quiet_cmd_lz4 = LZ4 $@
352cmd_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.
394quiet_cmd_xzkern = XZKERN $@ 392quiet_cmd_xzkern = XZKERN $@
395cmd_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
399quiet_cmd_xzmisc = XZMISC $@ 396quiet_cmd_xzmisc = XZMISC $@
400cmd_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
13compiler="$*" 9compiler="$*"
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
13if [ "$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;
16fi
17 8
18compiler="$*" 9compiler="$*"
19 10
20if [ ${#compiler} -eq 0 ]; then 11if [ ${#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
24fi 15fi
25 16
26MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1) 17MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1)
27MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1) 18MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1)
28if [ "x$with_patchlevel" != "x" ] ; then 19PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -x c - | tail -n 1)
29 PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -x c - | tail -n 1) 20printf "%d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL
30 printf "%02d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL
31else
32 printf "%02d%02d\\n" $MAJOR $MINOR
33fi
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
2always := gdb-scripts
3 2
4SRCTREE := $(abspath $(srctree))
5
6$(obj)/gdb-scripts:
7ifneq ($(KBUILD_SRC),) 3ifneq ($(KBUILD_SRC),)
8 $(Q)ln -fsn $(SRCTREE)/$(obj)/*.py $(objtree)/$(obj) 4
5symlinks := $(patsubst $(srctree)/$(src)/%,%,$(wildcard $(srctree)/$(src)/*.py))
6
7quiet_cmd_symlink = SYMLINK $@
8 cmd_symlink = ln -fsn $(patsubst $(obj)/%,$(abspath $(srctree))/$(src)/%,$@) $@
9
10extra-y += $(symlinks)
11$(addprefix $(obj)/, $(symlinks)): FORCE
12 $(call if_changed,symlink)
13
9endif 14endif
10 @:
11 15
12quiet_cmd_gen_constants_py = GEN $@ 16quiet_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
17targets += constants.py 21extra-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
21build_constants_py: $(obj)/constants.py 25clean-files := *.pyc *.pyo
22 @:
23
24clean-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;
62static int absolute_percpu = 0; 62static int absolute_percpu = 0;
63static int base_relative = 0; 63static int base_relative = 0;
64 64
65int token_profit[0x10000]; 65static 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 */
68unsigned char best_table[256][2]; 68static unsigned char best_table[256][2];
69unsigned char best_table_len[256]; 69static unsigned char best_table_len[256];
70 70
71 71
72static void usage(void) 72static 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 */
83static inline int is_arm_mapping_symbol(const char *str) 83static 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#
56archive_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
67modpost_link() 44modpost_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
220archive_builtin
221
222#link vmlinux.o 196#link vmlinux.o
223info LD vmlinux.o 197info LD vmlinux.o
224modpost_link vmlinux.o 198modpost_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# ---------------------------------------------------------------------------
61binrpm-pkg: FORCE 61binrpm-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
77bindeb-pkg: FORCE 77bindeb-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
81intdeb-pkg: FORCE 81intdeb-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# ---------------------------------------------------------------------------
104tar%pkg: FORCE 104tar%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
108clean-dirs += $(objtree)/tar-install/ 108clean-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"
86if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then 86if 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
91fi 91fi
92 92
93if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then 93if 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
119fi 119fi
120 120
121if [ "$ARCH" != "um" ]; then 121if [ "$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"
124fi 124fi
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#
59if grep -q '^CONFIG_MODULES=y' "${KCONFIG_CONFIG}"; then 59if 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"
62fi 62fi
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
205cat <<EOF > debian/rules 205cat <<EOF > debian/rules
206#!$(command -v $MAKE) -f 206#!$(command -v $MAKE) -f
207 207
208srctree ?= .
209
208build: 210build:
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
212binary-arch: 214binary-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
216clean: 218clean:
217 rm -rf debian/*tmp debian/files 219 rm -rf debian/*tmp debian/files