Skip to content

Commit 5e2fda4

Browse files
committed
Merge tag 'kbuild-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull more Kbuild updates from Masahiro Yamada: - use 'pwd' instead of '/bin/pwd' for portability - clean up Makefiles - fix ld-option for clang - fix malloc'ed data size in Kconfig - fix parallel building along with coccicheck - fix a minor issue of package building - prompt to use "rpm-pkg" instead of "rpm" - clean up *.i and *.lst patterns by "make clean" * tag 'kbuild-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: drop $(extra-y) from real-objs-y kbuild: clean up *.i and *.lst patterns by make clean kbuild: rpm: prompt to use "rpm-pkg" if "rpm" target is used kbuild: pkg: use --transform option to prefix paths in tar coccinelle: fix parallel build with CHECK=scripts/coccicheck kconfig/symbol.c: use correct pointer type argument for sizeof kbuild: Set KBUILD_CFLAGS before incl. arch Makefile kbuild: remove all dummy assignments to obj- kbuild: create built-in.o automatically if parent directory wants it kbuild: /bin/pwd -> pwd
2 parents f61ec2c + 10aaa3b commit 5e2fda4

File tree

29 files changed

+58
-113
lines changed

29 files changed

+58
-113
lines changed

Documentation/ia64/xen.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Getting and Building Xen and Dom0
4141

4242
5. make initrd for Dom0/DomU
4343
# make -C linux-2.6.18-xen.hg ARCH=ia64 modules_install \
44-
O=$(/bin/pwd)/build-linux-2.6.18-xen_ia64
44+
O=$(pwd)/build-linux-2.6.18-xen_ia64
4545
# mkinitrd -f /boot/efi/efi/redhat/initrd-2.6.18.8-xen.img \
4646
2.6.18.8-xen --builtin mptspi --builtin mptbase \
4747
--builtin mptscsih --builtin uhci-hcd --builtin ohci-hcd \

Makefile

+39-38
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ ifneq ($(KBUILD_OUTPUT),)
132132
# check that the output directory actually exists
133133
saved-output := $(KBUILD_OUTPUT)
134134
KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
135-
&& /bin/pwd)
135+
&& pwd)
136136
$(if $(KBUILD_OUTPUT),, \
137137
$(error failed to create output directory "$(saved-output)"))
138138

@@ -474,6 +474,38 @@ ifneq ($(KBUILD_SRC),)
474474
$(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
475475
endif
476476

477+
ifeq ($(cc-name),clang)
478+
ifneq ($(CROSS_COMPILE),)
479+
CLANG_TARGET := --target=$(notdir $(CROSS_COMPILE:%-=%))
480+
GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
481+
endif
482+
ifneq ($(GCC_TOOLCHAIN),)
483+
CLANG_GCC_TC := --gcc-toolchain=$(GCC_TOOLCHAIN)
484+
endif
485+
KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
486+
KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
487+
KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
488+
KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
489+
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
490+
KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
491+
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
492+
# Quiet clang warning: comparison of unsigned expression < 0 is always false
493+
KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
494+
# CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
495+
# source of a reference will be _MergedGlobals and not on of the whitelisted names.
496+
# See modpost pattern 2
497+
KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
498+
KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
499+
KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
500+
KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
501+
else
502+
503+
# These warnings generated too much noise in a regular build.
504+
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
505+
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
506+
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
507+
endif
508+
477509
ifeq ($(config-targets),1)
478510
# ===========================================================================
479511
# *config targets only - make sure prerequisites are updated, and descend
@@ -684,38 +716,6 @@ ifdef CONFIG_CC_STACKPROTECTOR
684716
endif
685717
KBUILD_CFLAGS += $(stackp-flag)
686718

687-
ifeq ($(cc-name),clang)
688-
ifneq ($(CROSS_COMPILE),)
689-
CLANG_TARGET := --target=$(notdir $(CROSS_COMPILE:%-=%))
690-
GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
691-
endif
692-
ifneq ($(GCC_TOOLCHAIN),)
693-
CLANG_GCC_TC := --gcc-toolchain=$(GCC_TOOLCHAIN)
694-
endif
695-
KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
696-
KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
697-
KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
698-
KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
699-
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
700-
KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
701-
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
702-
# Quiet clang warning: comparison of unsigned expression < 0 is always false
703-
KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
704-
# CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
705-
# source of a reference will be _MergedGlobals and not on of the whitelisted names.
706-
# See modpost pattern 2
707-
KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
708-
KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
709-
KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
710-
KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
711-
else
712-
713-
# These warnings generated too much noise in a regular build.
714-
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
715-
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
716-
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
717-
endif
718-
719719
ifdef CONFIG_FRAME_POINTER
720720
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
721721
else
@@ -1009,7 +1009,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
10091009

10101010
PHONY += $(vmlinux-dirs)
10111011
$(vmlinux-dirs): prepare scripts
1012-
$(Q)$(MAKE) $(build)=$@
1012+
$(Q)$(MAKE) $(build)=$@ need-builtin=1
10131013

10141014
define filechk_kernel.release
10151015
echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
@@ -1337,8 +1337,9 @@ package-dir := scripts/package
13371337
$(Q)$(MAKE) $(build)=$(package-dir) $@
13381338
%pkg: include/config/kernel.release FORCE
13391339
$(Q)$(MAKE) $(build)=$(package-dir) $@
1340-
rpm: include/config/kernel.release FORCE
1341-
$(Q)$(MAKE) $(build)=$(package-dir) $@
1340+
rpm: rpm-pkg
1341+
@echo " WARNING: \"rpm\" target will be removed after Linux 4.18"
1342+
@echo " Please use \"rpm-pkg\" instead."
13421343

13431344

13441345
# Brief documentation of the typical targets used
@@ -1546,9 +1547,9 @@ clean: $(clean-dirs)
15461547
$(call cmd,rmdirs)
15471548
$(call cmd,rmfiles)
15481549
@find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
1549-
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
1550+
\( -name '*.[aios]' -o -name '*.ko' -o -name '.*.cmd' \
15501551
-o -name '*.ko.*' -o -name '*.dtb' -o -name '*.dtb.S' \
1551-
-o -name '*.dwo' \
1552+
-o -name '*.dwo' -o -name '*.lst' \
15521553
-o -name '*.su' \
15531554
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
15541555
-o -name '*.symtypes' -o -name 'modules.order' \

arch/arm/mach-uniphier/Makefile

-1
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
obj- += dummy.o

arch/mips/boot/dts/brcm/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,3 @@ dtb-$(CONFIG_DT_NONE) += \
3535
bcm97435svmb.dtb
3636

3737
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
38-
39-
# Force kbuild to make empty built-in.o if necessary
40-
obj- += dummy.o

arch/mips/boot/dts/cavium-octeon/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,3 @@
22
dtb-$(CONFIG_CAVIUM_OCTEON_SOC) += octeon_3xxx.dtb octeon_68xx.dtb
33

44
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
5-
6-
# Force kbuild to make empty built-in.o if necessary
7-
obj- += dummy.o

arch/mips/boot/dts/img/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,3 @@ dtb-$(CONFIG_FIT_IMAGE_FDT_BOSTON) += boston.dtb
33

44
dtb-$(CONFIG_MACH_PISTACHIO) += pistachio_marduk.dtb
55
obj-$(CONFIG_MACH_PISTACHIO) += pistachio_marduk.dtb.o
6-
7-
# Force kbuild to make empty built-in.o if necessary
8-
obj- += dummy.o

arch/mips/boot/dts/ingenic/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,3 @@ dtb-$(CONFIG_JZ4740_QI_LB60) += qi_lb60.dtb
33
dtb-$(CONFIG_JZ4780_CI20) += ci20.dtb
44

55
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
6-
7-
# Force kbuild to make empty built-in.o if necessary
8-
obj- += dummy.o

arch/mips/boot/dts/lantiq/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,3 @@
22
dtb-$(CONFIG_DT_EASY50712) += easy50712.dtb
33

44
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
5-
6-
# Force kbuild to make empty built-in.o if necessary
7-
obj- += dummy.o

arch/mips/boot/dts/mti/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,3 @@ dtb-$(CONFIG_MIPS_MALTA) += malta.dtb
33
dtb-$(CONFIG_LEGACY_BOARD_SEAD3) += sead3.dtb
44

55
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
6-
7-
# Force kbuild to make empty built-in.o if necessary
8-
obj- += dummy.o

arch/mips/boot/dts/netlogic/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,3 @@ dtb-$(CONFIG_DT_XLP_GVP) += xlp_gvp.dtb
66
dtb-$(CONFIG_DT_XLP_RVP) += xlp_rvp.dtb
77

88
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
9-
10-
# Force kbuild to make empty built-in.o if necessary
11-
obj- += dummy.o

arch/mips/boot/dts/ni/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
11
dtb-$(CONFIG_FIT_IMAGE_FDT_NI169445) += 169445.dtb
2-
3-
# Force kbuild to make empty built-in.o if necessary
4-
obj- += dummy.o

arch/mips/boot/dts/pic32/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,3 @@ dtb-$(CONFIG_DTB_PIC32_NONE) += \
55
pic32mzda_sk.dtb
66

77
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
8-
9-
# Force kbuild to make empty built-in.o if necessary
10-
obj- += dummy.o

arch/mips/boot/dts/qca/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,3 @@ dtb-$(CONFIG_ATH79) += ar9331_dpt_module.dtb
55
dtb-$(CONFIG_ATH79) += ar9331_dragino_ms14.dtb
66
dtb-$(CONFIG_ATH79) += ar9331_omega.dtb
77
dtb-$(CONFIG_ATH79) += ar9331_tl_mr3020.dtb
8-
9-
# Force kbuild to make empty built-in.o if necessary
10-
obj- += dummy.o

arch/mips/boot/dts/ralink/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,3 @@ dtb-$(CONFIG_DTB_OMEGA2P) += omega2p.dtb
77
dtb-$(CONFIG_DTB_VOCORE2) += vocore2.dtb
88

99
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
10-
11-
# Force kbuild to make empty built-in.o if necessary
12-
obj- += dummy.o

arch/mips/boot/dts/xilfpga/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,3 @@
22
dtb-$(CONFIG_FIT_IMAGE_FDT_XILFPGA) += nexys4ddr.dtb
33

44
obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
5-
6-
# Force kbuild to make empty built-in.o if necessary
7-
obj- += dummy.o

firmware/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,3 @@ endif
5959

6060
targets := $(patsubst $(obj)/%,%, \
6161
$(shell find $(obj) -name \*.gen.S 2>/dev/null))
62-
# Without this, built-in.o won't be created when it's empty, and the
63-
# final vmlinux link will fail.
64-
obj- := dummy

samples/bpf/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
# SPDX-License-Identifier: GPL-2.0
2-
# kbuild trick to avoid linker error. Can be omitted if a module is built.
3-
obj- := dummy.o
4-
52
# List of programs to build
63
hostprogs-y := test_lru_dist
74
hostprogs-y += sock_example

samples/hidraw/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
# SPDX-License-Identifier: GPL-2.0
2-
# kbuild trick to avoid linker error. Can be omitted if a module is built.
3-
obj- := dummy.o
4-
52
# List of programs to build
63
hostprogs-y := hid-example
74

samples/seccomp/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
# SPDX-License-Identifier: GPL-2.0
2-
# kbuild trick to avoid linker error. Can be omitted if a module is built.
3-
obj- := dummy.o
4-
52
hostprogs-$(CONFIG_SAMPLE_SECCOMP) := bpf-fancy dropper bpf-direct
63

74
HOSTCFLAGS_bpf-fancy.o += -I$(objtree)/usr/include

samples/sockmap/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# kbuild trick to avoid linker error. Can be omitted if a module is built.
2-
obj- := dummy.o
3-
41
# List of programs to build
52
hostprogs-y := sockmap
63

samples/statx/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# kbuild trick to avoid linker error. Can be omitted if a module is built.
2-
obj- := dummy.o
3-
41
# List of programs to build
52
hostprogs-$(CONFIG_SAMPLE_STATX) := test-statx
63

samples/uhid/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# kbuild trick to avoid linker error. Can be omitted if a module is built.
2-
obj- := dummy.o
3-
41
# List of programs to build
52
hostprogs-y := uhid-example
63

scripts/Makefile.build

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ lib-target := $(obj)/lib.a
7676
obj-y += $(obj)/lib-ksyms.o
7777
endif
7878

79-
ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),)
79+
ifneq ($(strip $(obj-y) $(need-builtin)),)
8080
builtin-target := $(obj)/built-in.o
8181
endif
8282

@@ -566,7 +566,7 @@ targets := $(filter-out $(PHONY), $(targets))
566566

567567
PHONY += $(subdir-ym)
568568
$(subdir-ym):
569-
$(Q)$(MAKE) $(build)=$@
569+
$(Q)$(MAKE) $(build)=$@ need-builtin=$(if $(findstring $@,$(subdir-obj-y)),1)
570570

571571
# Add FORCE to the prequisites of a target to force it to be always rebuilt.
572572
# ---------------------------------------------------------------------------

scripts/Makefile.lib

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ multi-objs-m := $(foreach m, $(multi-used-m), $($(m:.o=-objs)) $($(m:.o=-y)))
5757
subdir-obj-y := $(filter %/built-in.o, $(obj-y))
5858

5959
# Replace multi-part objects by their individual parts, look at local dir only
60-
real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) $(extra-y)
60+
real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m)))
6161
real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m)))
6262

6363
# DTB

scripts/coccicheck

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,6 @@ else
3030
VERBOSE=0
3131
fi
3232

33-
if [ -z "$J" ]; then
34-
NPROC=$(getconf _NPROCESSORS_ONLN)
35-
else
36-
NPROC="$J"
37-
fi
38-
3933
FLAGS="--very-quiet"
4034

4135
# You can use SPFLAGS to append extra arguments to coccicheck or override any
@@ -70,13 +64,22 @@ if [ "$C" = "1" -o "$C" = "2" ]; then
7064
# Take only the last argument, which is the C file to test
7165
shift $(( $# - 1 ))
7266
OPTIONS="$COCCIINCLUDE $1"
67+
68+
# No need to parallelize Coccinelle since this mode takes one input file.
69+
NPROC=1
7370
else
7471
ONLINE=0
7572
if [ "$KBUILD_EXTMOD" = "" ] ; then
7673
OPTIONS="--dir $srctree $COCCIINCLUDE"
7774
else
7875
OPTIONS="--dir $KBUILD_EXTMOD $COCCIINCLUDE"
7976
fi
77+
78+
if [ -z "$J" ]; then
79+
NPROC=$(getconf _NPROCESSORS_ONLN)
80+
else
81+
NPROC="$J"
82+
fi
8083
fi
8184

8285
if [ "$KBUILD_EXTMOD" != "" ] ; then

scripts/kconfig/symbol.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1061,7 +1061,7 @@ struct symbol **sym_re_search(const char *pattern)
10611061
}
10621062
if (sym_match_arr) {
10631063
qsort(sym_match_arr, cnt, sizeof(struct sym_match), sym_rel_comp);
1064-
sym_arr = malloc((cnt+1) * sizeof(struct symbol));
1064+
sym_arr = malloc((cnt+1) * sizeof(struct symbol *));
10651065
if (!sym_arr)
10661066
goto sym_re_search_free;
10671067
for (i = 0; i < cnt; i++)

scripts/package/Makefile

+3-4
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@ if test "$(objtree)" != "$(srctree)"; then \
3939
false; \
4040
fi ; \
4141
$(srctree)/scripts/setlocalversion --save-scmversion; \
42-
ln -sf $(srctree) $(2); \
4342
tar -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
44-
$(addprefix $(2)/,$(TAR_CONTENT) $(3)); \
45-
rm -f $(2) $(objtree)/.scmversion
43+
--transform 's:^:$(2)/:S' $(TAR_CONTENT) $(3); \
44+
rm -f $(objtree)/.scmversion
4645

4746
# rpm-pkg
4847
# ---------------------------------------------------------------------------
49-
rpm-pkg rpm: FORCE
48+
rpm-pkg: FORCE
5049
$(MAKE) clean
5150
$(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
5251
$(call cmd,src_tar,$(KERNELPATH),kernel.spec)

tools/power/cpupower/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ endif
2626

2727
ifneq ($(OUTPUT),)
2828
# check that the output directory actually exists
29-
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
29+
OUTDIR := $(shell cd $(OUTPUT) && pwd)
3030
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
3131
endif
3232

tools/scripts/Makefile.include

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ endif
1313

1414
# check that the output directory actually exists
1515
ifneq ($(OUTPUT),)
16-
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
16+
OUTDIR := $(shell cd $(OUTPUT) && pwd)
1717
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
1818
endif
1919

0 commit comments

Comments
 (0)