* [PATCH 0/2] kbuild: remove all "obj- := dummy.o" tricks @ 2017-11-07 16:31 ` Masahiro Yamada 0 siblings, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-07 16:31 UTC (permalink / raw) To: linux-kbuild, Sam Ravnborg Cc: Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, linux-mips, linux-kernel, Michal Marek, Masahiro Yamada, Ralf Baechle, Michal Marek, netdev, Russell King, Alexei Starovoitov, Daniel Borkmann, linux-arm-kernel This clean-up was prompted by Sam when I refactored DT building: https://patchwork.kernel.org/patch/10041881/ If you want to test this series, apply the following 3 patches: https://patchwork.kernel.org/patch/10037891/ https://patchwork.kernel.org/patch/10041877/ https://patchwork.kernel.org/patch/10041881/ I CCed DT forks to informs them of conflicts with those patches Rob Herring offered to apply. I doubt if he wants to review this series... Masahiro Yamada (2): kbuild: create built-in.o automatically if parent directory wants it kbuild: remove all dummy assignments to obj- Makefile | 2 +- arch/arm/mach-uniphier/Makefile | 1 - arch/mips/boot/dts/brcm/Makefile | 3 --- arch/mips/boot/dts/cavium-octeon/Makefile | 3 --- arch/mips/boot/dts/img/Makefile | 3 --- arch/mips/boot/dts/ingenic/Makefile | 3 --- arch/mips/boot/dts/lantiq/Makefile | 3 --- arch/mips/boot/dts/mti/Makefile | 3 --- arch/mips/boot/dts/netlogic/Makefile | 3 --- arch/mips/boot/dts/ni/Makefile | 3 --- arch/mips/boot/dts/pic32/Makefile | 3 --- arch/mips/boot/dts/qca/Makefile | 3 --- arch/mips/boot/dts/ralink/Makefile | 3 --- arch/mips/boot/dts/xilfpga/Makefile | 3 --- firmware/Makefile | 3 --- samples/bpf/Makefile | 3 --- samples/hidraw/Makefile | 3 --- samples/seccomp/Makefile | 3 --- samples/sockmap/Makefile | 3 --- samples/statx/Makefile | 3 --- samples/uhid/Makefile | 3 --- scripts/Makefile.build | 4 ++-- 22 files changed, 3 insertions(+), 61 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 0/2] kbuild: remove all "obj- := dummy.o" tricks @ 2017-11-07 16:31 ` Masahiro Yamada 0 siblings, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-07 16:31 UTC (permalink / raw) To: linux-kbuild, Sam Ravnborg Cc: Mark Rutland, devicetree, Michal Marek, Alexei Starovoitov, Daniel Borkmann, Arnd Bergmann, linux-mips, netdev, Pantelis Antoniou, linux-kernel, Ralf Baechle, Russell King, Masahiro Yamada, Rob Herring, Michal Marek, linux-arm-kernel This clean-up was prompted by Sam when I refactored DT building: https://patchwork.kernel.org/patch/10041881/ If you want to test this series, apply the following 3 patches: https://patchwork.kernel.org/patch/10037891/ https://patchwork.kernel.org/patch/10041877/ https://patchwork.kernel.org/patch/10041881/ I CCed DT forks to informs them of conflicts with those patches Rob Herring offered to apply. I doubt if he wants to review this series... Masahiro Yamada (2): kbuild: create built-in.o automatically if parent directory wants it kbuild: remove all dummy assignments to obj- Makefile | 2 +- arch/arm/mach-uniphier/Makefile | 1 - arch/mips/boot/dts/brcm/Makefile | 3 --- arch/mips/boot/dts/cavium-octeon/Makefile | 3 --- arch/mips/boot/dts/img/Makefile | 3 --- arch/mips/boot/dts/ingenic/Makefile | 3 --- arch/mips/boot/dts/lantiq/Makefile | 3 --- arch/mips/boot/dts/mti/Makefile | 3 --- arch/mips/boot/dts/netlogic/Makefile | 3 --- arch/mips/boot/dts/ni/Makefile | 3 --- arch/mips/boot/dts/pic32/Makefile | 3 --- arch/mips/boot/dts/qca/Makefile | 3 --- arch/mips/boot/dts/ralink/Makefile | 3 --- arch/mips/boot/dts/xilfpga/Makefile | 3 --- firmware/Makefile | 3 --- samples/bpf/Makefile | 3 --- samples/hidraw/Makefile | 3 --- samples/seccomp/Makefile | 3 --- samples/sockmap/Makefile | 3 --- samples/statx/Makefile | 3 --- samples/uhid/Makefile | 3 --- scripts/Makefile.build | 4 ++-- 22 files changed, 3 insertions(+), 61 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 0/2] kbuild: remove all "obj- := dummy.o" tricks @ 2017-11-07 16:31 ` Masahiro Yamada 0 siblings, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-07 16:31 UTC (permalink / raw) To: linux-arm-kernel This clean-up was prompted by Sam when I refactored DT building: https://patchwork.kernel.org/patch/10041881/ If you want to test this series, apply the following 3 patches: https://patchwork.kernel.org/patch/10037891/ https://patchwork.kernel.org/patch/10041877/ https://patchwork.kernel.org/patch/10041881/ I CCed DT forks to informs them of conflicts with those patches Rob Herring offered to apply. I doubt if he wants to review this series... Masahiro Yamada (2): kbuild: create built-in.o automatically if parent directory wants it kbuild: remove all dummy assignments to obj- Makefile | 2 +- arch/arm/mach-uniphier/Makefile | 1 - arch/mips/boot/dts/brcm/Makefile | 3 --- arch/mips/boot/dts/cavium-octeon/Makefile | 3 --- arch/mips/boot/dts/img/Makefile | 3 --- arch/mips/boot/dts/ingenic/Makefile | 3 --- arch/mips/boot/dts/lantiq/Makefile | 3 --- arch/mips/boot/dts/mti/Makefile | 3 --- arch/mips/boot/dts/netlogic/Makefile | 3 --- arch/mips/boot/dts/ni/Makefile | 3 --- arch/mips/boot/dts/pic32/Makefile | 3 --- arch/mips/boot/dts/qca/Makefile | 3 --- arch/mips/boot/dts/ralink/Makefile | 3 --- arch/mips/boot/dts/xilfpga/Makefile | 3 --- firmware/Makefile | 3 --- samples/bpf/Makefile | 3 --- samples/hidraw/Makefile | 3 --- samples/seccomp/Makefile | 3 --- samples/sockmap/Makefile | 3 --- samples/statx/Makefile | 3 --- samples/uhid/Makefile | 3 --- scripts/Makefile.build | 4 ++-- 22 files changed, 3 insertions(+), 61 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it 2017-11-07 16:31 ` Masahiro Yamada (?) (?) @ 2017-11-07 16:31 ` Masahiro Yamada 2017-11-09 5:35 ` Sam Ravnborg 2017-11-18 4:06 ` Masahiro Yamada -1 siblings, 2 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-07 16:31 UTC (permalink / raw) To: linux-kbuild, Sam Ravnborg Cc: Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, linux-mips, linux-kernel, Michal Marek, Masahiro Yamada, Michal Marek "obj-y += foo/" syntax requires Kbuild to visit the "foo" subdirectory and link built-in.o from that directory. This means foo/Makefile is responsible for creating built-in.o even if there is no object to link (in this case, built-in.o is an empty archive). We have had several fixups like commit 4b024242e8a4 ("kbuild: Fix linking error built-in.o no such file or directory"), then ended up with a complex condition as follows: ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),) builtin-target := $(obj)/built-in.o endif We still have more cases not covered by the above, so we need to add obj- := dummy.o in several places just for creating empty built-in.o. A key point is, the parent Makefile knows whether built-in.o is needed or not. If a subdirectory needs to create built-in.o, its parent can tell the fact when Kbuild descends into it. If non-empty $(need-builtin) flag is passed from the parent, built-in.o should be created. $(obj-y) should be still checked to support the single target "%/". All of ugly tricks will go away. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- Makefile | 2 +- scripts/Makefile.build | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 008a4e5..cc0b618 100644 --- a/Makefile +++ b/Makefile @@ -1003,7 +1003,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; PHONY += $(vmlinux-dirs) $(vmlinux-dirs): prepare scripts - $(Q)$(MAKE) $(build)=$@ + $(Q)$(MAKE) $(build)=$@ need-builtin=1 define filechk_kernel.release echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))" diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 061d0c3..e1c6efd 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -84,7 +84,7 @@ lib-target := $(obj)/lib.a obj-y += $(obj)/lib-ksyms.o endif -ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),) +ifneq ($(strip $(obj-y) $(need-builtin)),) builtin-target := $(obj)/built-in.o endif @@ -569,7 +569,7 @@ targets += $(multi-used-y) $(multi-used-m) PHONY += $(subdir-ym) $(subdir-ym): - $(Q)$(MAKE) $(build)=$@ + $(Q)$(MAKE) $(build)=$@ need-builtin=$(if $(findstring $@,$(subdir-obj-y)),1) # Add FORCE to the prequisites of a target to force it to be always rebuilt. # --------------------------------------------------------------------------- -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it 2017-11-07 16:31 ` [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it Masahiro Yamada @ 2017-11-09 5:35 ` Sam Ravnborg 2017-11-09 5:53 ` Masahiro Yamada 2017-11-18 4:06 ` Masahiro Yamada 1 sibling, 1 reply; 12+ messages in thread From: Sam Ravnborg @ 2017-11-09 5:35 UTC (permalink / raw) To: Masahiro Yamada Cc: linux-kbuild, Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, linux-mips, linux-kernel, Michal Marek, Michal Marek Hi Masahiro. Thanks for picking this up. > A key point is, the parent Makefile knows whether built-in.o is needed > or not. If a subdirectory needs to create built-in.o, its parent can > tell the fact when Kbuild descends into it. Good observation! > > diff --git a/Makefile b/Makefile > index 008a4e5..cc0b618 100644 > --- a/Makefile > +++ b/Makefile > @@ -1003,7 +1003,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; > > PHONY += $(vmlinux-dirs) > $(vmlinux-dirs): prepare scripts > - $(Q)$(MAKE) $(build)=$@ > + $(Q)$(MAKE) $(build)=$@ need-builtin=1 The need-bultin may also be required for the shortcuts that allows one to use: make <dir>/ example: make net/ And maybe selftest, documentation shortcuts too? Other than that - looks good. Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Sam ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it 2017-11-09 5:35 ` Sam Ravnborg @ 2017-11-09 5:53 ` Masahiro Yamada 2017-11-09 16:08 ` Sam Ravnborg 0 siblings, 1 reply; 12+ messages in thread From: Masahiro Yamada @ 2017-11-09 5:53 UTC (permalink / raw) To: Sam Ravnborg Cc: Linux Kbuild mailing list, Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, Linux-MIPS, Linux Kernel Mailing List, Michal Marek, Michal Marek Hi Sam, Thanks for your review. 2017-11-09 14:35 GMT+09:00 Sam Ravnborg <sam@ravnborg.org>: > Hi Masahiro. > > Thanks for picking this up. > >> A key point is, the parent Makefile knows whether built-in.o is needed >> or not. If a subdirectory needs to create built-in.o, its parent can >> tell the fact when Kbuild descends into it. > Good observation! >> >> diff --git a/Makefile b/Makefile >> index 008a4e5..cc0b618 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -1003,7 +1003,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; >> >> PHONY += $(vmlinux-dirs) >> $(vmlinux-dirs): prepare scripts >> - $(Q)$(MAKE) $(build)=$@ >> + $(Q)$(MAKE) $(build)=$@ need-builtin=1 > > The need-bultin may also be required for the shortcuts > that allows one to use: > > make <dir>/ > > example: > > make net/ I do not want to add need-builtin=1 for single targets. make scripts/ would create false scripts/built-in.o This is odd. I wrote the solution in the commit log: $(obj-y) should be still checked to support the single target "%/". If net/Makefile contains at least one obj-y, "make net/" will create built-in.o > And maybe selftest, documentation shortcuts too? > Other than that - looks good. > > Reviewed-by: Sam Ravnborg <sam@ravnborg.org> > > Sam > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it 2017-11-09 5:53 ` Masahiro Yamada @ 2017-11-09 16:08 ` Sam Ravnborg 0 siblings, 0 replies; 12+ messages in thread From: Sam Ravnborg @ 2017-11-09 16:08 UTC (permalink / raw) To: Masahiro Yamada Cc: Linux Kbuild mailing list, Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, Linux-MIPS, Linux Kernel Mailing List, Michal Marek, Michal Marek Hi Masahiro. On Thu, Nov 09, 2017 at 02:53:04PM +0900, Masahiro Yamada wrote: > Hi Sam, > > Thanks for your review. > > 2017-11-09 14:35 GMT+09:00 Sam Ravnborg <sam@ravnborg.org>: > > Hi Masahiro. > > > > Thanks for picking this up. > > > >> A key point is, the parent Makefile knows whether built-in.o is needed > >> or not. If a subdirectory needs to create built-in.o, its parent can > >> tell the fact when Kbuild descends into it. > > Good observation! > >> > >> diff --git a/Makefile b/Makefile > >> index 008a4e5..cc0b618 100644 > >> --- a/Makefile > >> +++ b/Makefile > >> @@ -1003,7 +1003,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; > >> > >> PHONY += $(vmlinux-dirs) > >> $(vmlinux-dirs): prepare scripts > >> - $(Q)$(MAKE) $(build)=$@ > >> + $(Q)$(MAKE) $(build)=$@ need-builtin=1 > > > > The need-bultin may also be required for the shortcuts > > that allows one to use: > > > > make <dir>/ > > > > example: > > > > make net/ > > > I do not want to add need-builtin=1 for single targets. > > > make scripts/ > would create false scripts/built-in.o > This is odd. > > I wrote the solution in the commit log: > $(obj-y) should be still checked to support the single target "%/". I missed this bit in the commit log, but I almost commented on this in the patch itself. Good way to do it. Sam ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it 2017-11-07 16:31 ` [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it Masahiro Yamada 2017-11-09 5:35 ` Sam Ravnborg @ 2017-11-18 4:06 ` Masahiro Yamada 1 sibling, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-18 4:06 UTC (permalink / raw) To: Linux Kbuild mailing list, Sam Ravnborg Cc: Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, Linux-MIPS, Linux Kernel Mailing List, Michal Marek, Masahiro Yamada, Michal Marek 2017-11-08 1:31 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>: > "obj-y += foo/" syntax requires Kbuild to visit the "foo" subdirectory > and link built-in.o from that directory. This means foo/Makefile is > responsible for creating built-in.o even if there is no object to > link (in this case, built-in.o is an empty archive). > > We have had several fixups like commit 4b024242e8a4 ("kbuild: Fix > linking error built-in.o no such file or directory"), then ended up > with a complex condition as follows: > > ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),) > builtin-target := $(obj)/built-in.o > endif > > We still have more cases not covered by the above, so we need to add > obj- := dummy.o > in several places just for creating empty built-in.o. > > A key point is, the parent Makefile knows whether built-in.o is needed > or not. If a subdirectory needs to create built-in.o, its parent can > tell the fact when Kbuild descends into it. > > If non-empty $(need-builtin) flag is passed from the parent, built-in.o > should be created. $(obj-y) should be still checked to support the > single target "%/". All of ugly tricks will go away. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > Applied to linux-kbuild/kbuild. -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/2] kbuild: remove all dummy assignments to obj- 2017-11-07 16:31 ` Masahiro Yamada @ 2017-11-07 16:31 ` Masahiro Yamada -1 siblings, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-07 16:31 UTC (permalink / raw) To: linux-kbuild, Sam Ravnborg Cc: Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, linux-mips, linux-kernel, Michal Marek, Masahiro Yamada, Ralf Baechle, Alexei Starovoitov, netdev, Russell King, Daniel Borkmann, linux-arm-kernel Now kbuild core scripts create empty built-in.o where necessary. Remove "obj- := dummy.o" tricks. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- arch/arm/mach-uniphier/Makefile | 1 - arch/mips/boot/dts/brcm/Makefile | 3 --- arch/mips/boot/dts/cavium-octeon/Makefile | 3 --- arch/mips/boot/dts/img/Makefile | 3 --- arch/mips/boot/dts/ingenic/Makefile | 3 --- arch/mips/boot/dts/lantiq/Makefile | 3 --- arch/mips/boot/dts/mti/Makefile | 3 --- arch/mips/boot/dts/netlogic/Makefile | 3 --- arch/mips/boot/dts/ni/Makefile | 3 --- arch/mips/boot/dts/pic32/Makefile | 3 --- arch/mips/boot/dts/qca/Makefile | 3 --- arch/mips/boot/dts/ralink/Makefile | 3 --- arch/mips/boot/dts/xilfpga/Makefile | 3 --- firmware/Makefile | 3 --- samples/bpf/Makefile | 3 --- samples/hidraw/Makefile | 3 --- samples/seccomp/Makefile | 3 --- samples/sockmap/Makefile | 3 --- samples/statx/Makefile | 3 --- samples/uhid/Makefile | 3 --- 20 files changed, 58 deletions(-) diff --git a/arch/arm/mach-uniphier/Makefile b/arch/arm/mach-uniphier/Makefile index 6bea3d3..e69de29 100644 --- a/arch/arm/mach-uniphier/Makefile +++ b/arch/arm/mach-uniphier/Makefile @@ -1 +0,0 @@ -obj- += dummy.o diff --git a/arch/mips/boot/dts/brcm/Makefile b/arch/mips/boot/dts/brcm/Makefile index bacb131..fcf68a2 100644 --- a/arch/mips/boot/dts/brcm/Makefile +++ b/arch/mips/boot/dts/brcm/Makefile @@ -34,6 +34,3 @@ dtb-$(CONFIG_DT_NONE) += \ bcm97435svmb.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/cavium-octeon/Makefile b/arch/mips/boot/dts/cavium-octeon/Makefile index e9592a9..a857b4c 100644 --- a/arch/mips/boot/dts/cavium-octeon/Makefile +++ b/arch/mips/boot/dts/cavium-octeon/Makefile @@ -1,6 +1,3 @@ dtb-$(CONFIG_CAVIUM_OCTEON_SOC) += octeon_3xxx.dtb octeon_68xx.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/img/Makefile b/arch/mips/boot/dts/img/Makefile index a46d773..17dedb7 100644 --- a/arch/mips/boot/dts/img/Makefile +++ b/arch/mips/boot/dts/img/Makefile @@ -2,6 +2,3 @@ dtb-$(CONFIG_FIT_IMAGE_FDT_BOSTON) += boston.dtb dtb-$(CONFIG_MACH_PISTACHIO) += pistachio_marduk.dtb obj-$(CONFIG_MACH_PISTACHIO) += pistachio_marduk.dtb.o - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/ingenic/Makefile b/arch/mips/boot/dts/ingenic/Makefile index ddd0faf..f2e516c 100644 --- a/arch/mips/boot/dts/ingenic/Makefile +++ b/arch/mips/boot/dts/ingenic/Makefile @@ -2,6 +2,3 @@ dtb-$(CONFIG_JZ4740_QI_LB60) += qi_lb60.dtb dtb-$(CONFIG_JZ4780_CI20) += ci20.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/lantiq/Makefile b/arch/mips/boot/dts/lantiq/Makefile index 586b1c9..fed59e0 100644 --- a/arch/mips/boot/dts/lantiq/Makefile +++ b/arch/mips/boot/dts/lantiq/Makefile @@ -1,6 +1,3 @@ dtb-$(CONFIG_DT_EASY50712) += easy50712.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/mti/Makefile b/arch/mips/boot/dts/mti/Makefile index faf7ac4..35cf12b 100644 --- a/arch/mips/boot/dts/mti/Makefile +++ b/arch/mips/boot/dts/mti/Makefile @@ -2,6 +2,3 @@ dtb-$(CONFIG_MIPS_MALTA) += malta.dtb dtb-$(CONFIG_LEGACY_BOARD_SEAD3) += sead3.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/netlogic/Makefile b/arch/mips/boot/dts/netlogic/Makefile index 77ffb30..84a38eb 100644 --- a/arch/mips/boot/dts/netlogic/Makefile +++ b/arch/mips/boot/dts/netlogic/Makefile @@ -5,6 +5,3 @@ dtb-$(CONFIG_DT_XLP_GVP) += xlp_gvp.dtb dtb-$(CONFIG_DT_XLP_RVP) += xlp_rvp.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/ni/Makefile b/arch/mips/boot/dts/ni/Makefile index 6cd9c60..9e2c9fa 100644 --- a/arch/mips/boot/dts/ni/Makefile +++ b/arch/mips/boot/dts/ni/Makefile @@ -1,4 +1 @@ dtb-$(CONFIG_FIT_IMAGE_FDT_NI169445) += 169445.dtb - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/pic32/Makefile b/arch/mips/boot/dts/pic32/Makefile index 5a08e48..6ecc249 100644 --- a/arch/mips/boot/dts/pic32/Makefile +++ b/arch/mips/boot/dts/pic32/Makefile @@ -4,6 +4,3 @@ dtb-$(CONFIG_DTB_PIC32_NONE) += \ pic32mzda_sk.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/qca/Makefile b/arch/mips/boot/dts/qca/Makefile index 181db5d..ad6429b 100644 --- a/arch/mips/boot/dts/qca/Makefile +++ b/arch/mips/boot/dts/qca/Makefile @@ -4,6 +4,3 @@ dtb-$(CONFIG_ATH79) += ar9331_dpt_module.dtb dtb-$(CONFIG_ATH79) += ar9331_dragino_ms14.dtb dtb-$(CONFIG_ATH79) += ar9331_omega.dtb dtb-$(CONFIG_ATH79) += ar9331_tl_mr3020.dtb - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/ralink/Makefile b/arch/mips/boot/dts/ralink/Makefile index 7b64654..baaea4a 100644 --- a/arch/mips/boot/dts/ralink/Makefile +++ b/arch/mips/boot/dts/ralink/Makefile @@ -6,6 +6,3 @@ dtb-$(CONFIG_DTB_OMEGA2P) += omega2p.dtb dtb-$(CONFIG_DTB_VOCORE2) += vocore2.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/xilfpga/Makefile b/arch/mips/boot/dts/xilfpga/Makefile index 77c8096..53f755f 100644 --- a/arch/mips/boot/dts/xilfpga/Makefile +++ b/arch/mips/boot/dts/xilfpga/Makefile @@ -1,6 +1,3 @@ dtb-$(CONFIG_XILFPGA_NEXYS4DDR) += nexys4ddr.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/firmware/Makefile b/firmware/Makefile index fa08088..6524be1 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -58,6 +58,3 @@ endif targets := $(patsubst $(obj)/%,%, \ $(shell find $(obj) -name \*.gen.S 2>/dev/null)) -# Without this, built-in.o won't be created when it's empty, and the -# final vmlinux link will fail. -obj- := dummy diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile index cf17c79..4ea6f75 100644 --- a/samples/bpf/Makefile +++ b/samples/bpf/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := test_lru_dist hostprogs-y += sock_example diff --git a/samples/hidraw/Makefile b/samples/hidraw/Makefile index a9ab961..329da9c 100644 --- a/samples/hidraw/Makefile +++ b/samples/hidraw/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := hid-example diff --git a/samples/seccomp/Makefile b/samples/seccomp/Makefile index bf7cc6b..5c6baac 100644 --- a/samples/seccomp/Makefile +++ b/samples/seccomp/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - hostprogs-$(CONFIG_SAMPLE_SECCOMP) := bpf-fancy dropper bpf-direct HOSTCFLAGS_bpf-fancy.o += -I$(objtree)/usr/include diff --git a/samples/sockmap/Makefile b/samples/sockmap/Makefile index 9291ab8..73f1da4 100644 --- a/samples/sockmap/Makefile +++ b/samples/sockmap/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := sockmap diff --git a/samples/statx/Makefile b/samples/statx/Makefile index 1f80a3d..59df7c2 100644 --- a/samples/statx/Makefile +++ b/samples/statx/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-$(CONFIG_SAMPLE_STATX) := test-statx diff --git a/samples/uhid/Makefile b/samples/uhid/Makefile index c95a696..8d7fd61 100644 --- a/samples/uhid/Makefile +++ b/samples/uhid/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := uhid-example -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2] kbuild: remove all dummy assignments to obj- @ 2017-11-07 16:31 ` Masahiro Yamada 0 siblings, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-07 16:31 UTC (permalink / raw) To: linux-arm-kernel Now kbuild core scripts create empty built-in.o where necessary. Remove "obj- := dummy.o" tricks. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- arch/arm/mach-uniphier/Makefile | 1 - arch/mips/boot/dts/brcm/Makefile | 3 --- arch/mips/boot/dts/cavium-octeon/Makefile | 3 --- arch/mips/boot/dts/img/Makefile | 3 --- arch/mips/boot/dts/ingenic/Makefile | 3 --- arch/mips/boot/dts/lantiq/Makefile | 3 --- arch/mips/boot/dts/mti/Makefile | 3 --- arch/mips/boot/dts/netlogic/Makefile | 3 --- arch/mips/boot/dts/ni/Makefile | 3 --- arch/mips/boot/dts/pic32/Makefile | 3 --- arch/mips/boot/dts/qca/Makefile | 3 --- arch/mips/boot/dts/ralink/Makefile | 3 --- arch/mips/boot/dts/xilfpga/Makefile | 3 --- firmware/Makefile | 3 --- samples/bpf/Makefile | 3 --- samples/hidraw/Makefile | 3 --- samples/seccomp/Makefile | 3 --- samples/sockmap/Makefile | 3 --- samples/statx/Makefile | 3 --- samples/uhid/Makefile | 3 --- 20 files changed, 58 deletions(-) diff --git a/arch/arm/mach-uniphier/Makefile b/arch/arm/mach-uniphier/Makefile index 6bea3d3..e69de29 100644 --- a/arch/arm/mach-uniphier/Makefile +++ b/arch/arm/mach-uniphier/Makefile @@ -1 +0,0 @@ -obj- += dummy.o diff --git a/arch/mips/boot/dts/brcm/Makefile b/arch/mips/boot/dts/brcm/Makefile index bacb131..fcf68a2 100644 --- a/arch/mips/boot/dts/brcm/Makefile +++ b/arch/mips/boot/dts/brcm/Makefile @@ -34,6 +34,3 @@ dtb-$(CONFIG_DT_NONE) += \ bcm97435svmb.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/cavium-octeon/Makefile b/arch/mips/boot/dts/cavium-octeon/Makefile index e9592a9..a857b4c 100644 --- a/arch/mips/boot/dts/cavium-octeon/Makefile +++ b/arch/mips/boot/dts/cavium-octeon/Makefile @@ -1,6 +1,3 @@ dtb-$(CONFIG_CAVIUM_OCTEON_SOC) += octeon_3xxx.dtb octeon_68xx.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/img/Makefile b/arch/mips/boot/dts/img/Makefile index a46d773..17dedb7 100644 --- a/arch/mips/boot/dts/img/Makefile +++ b/arch/mips/boot/dts/img/Makefile @@ -2,6 +2,3 @@ dtb-$(CONFIG_FIT_IMAGE_FDT_BOSTON) += boston.dtb dtb-$(CONFIG_MACH_PISTACHIO) += pistachio_marduk.dtb obj-$(CONFIG_MACH_PISTACHIO) += pistachio_marduk.dtb.o - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/ingenic/Makefile b/arch/mips/boot/dts/ingenic/Makefile index ddd0faf..f2e516c 100644 --- a/arch/mips/boot/dts/ingenic/Makefile +++ b/arch/mips/boot/dts/ingenic/Makefile @@ -2,6 +2,3 @@ dtb-$(CONFIG_JZ4740_QI_LB60) += qi_lb60.dtb dtb-$(CONFIG_JZ4780_CI20) += ci20.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/lantiq/Makefile b/arch/mips/boot/dts/lantiq/Makefile index 586b1c9..fed59e0 100644 --- a/arch/mips/boot/dts/lantiq/Makefile +++ b/arch/mips/boot/dts/lantiq/Makefile @@ -1,6 +1,3 @@ dtb-$(CONFIG_DT_EASY50712) += easy50712.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/mti/Makefile b/arch/mips/boot/dts/mti/Makefile index faf7ac4..35cf12b 100644 --- a/arch/mips/boot/dts/mti/Makefile +++ b/arch/mips/boot/dts/mti/Makefile @@ -2,6 +2,3 @@ dtb-$(CONFIG_MIPS_MALTA) += malta.dtb dtb-$(CONFIG_LEGACY_BOARD_SEAD3) += sead3.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/netlogic/Makefile b/arch/mips/boot/dts/netlogic/Makefile index 77ffb30..84a38eb 100644 --- a/arch/mips/boot/dts/netlogic/Makefile +++ b/arch/mips/boot/dts/netlogic/Makefile @@ -5,6 +5,3 @@ dtb-$(CONFIG_DT_XLP_GVP) += xlp_gvp.dtb dtb-$(CONFIG_DT_XLP_RVP) += xlp_rvp.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/ni/Makefile b/arch/mips/boot/dts/ni/Makefile index 6cd9c60..9e2c9fa 100644 --- a/arch/mips/boot/dts/ni/Makefile +++ b/arch/mips/boot/dts/ni/Makefile @@ -1,4 +1 @@ dtb-$(CONFIG_FIT_IMAGE_FDT_NI169445) += 169445.dtb - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/pic32/Makefile b/arch/mips/boot/dts/pic32/Makefile index 5a08e48..6ecc249 100644 --- a/arch/mips/boot/dts/pic32/Makefile +++ b/arch/mips/boot/dts/pic32/Makefile @@ -4,6 +4,3 @@ dtb-$(CONFIG_DTB_PIC32_NONE) += \ pic32mzda_sk.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/qca/Makefile b/arch/mips/boot/dts/qca/Makefile index 181db5d..ad6429b 100644 --- a/arch/mips/boot/dts/qca/Makefile +++ b/arch/mips/boot/dts/qca/Makefile @@ -4,6 +4,3 @@ dtb-$(CONFIG_ATH79) += ar9331_dpt_module.dtb dtb-$(CONFIG_ATH79) += ar9331_dragino_ms14.dtb dtb-$(CONFIG_ATH79) += ar9331_omega.dtb dtb-$(CONFIG_ATH79) += ar9331_tl_mr3020.dtb - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/ralink/Makefile b/arch/mips/boot/dts/ralink/Makefile index 7b64654..baaea4a 100644 --- a/arch/mips/boot/dts/ralink/Makefile +++ b/arch/mips/boot/dts/ralink/Makefile @@ -6,6 +6,3 @@ dtb-$(CONFIG_DTB_OMEGA2P) += omega2p.dtb dtb-$(CONFIG_DTB_VOCORE2) += vocore2.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/arch/mips/boot/dts/xilfpga/Makefile b/arch/mips/boot/dts/xilfpga/Makefile index 77c8096..53f755f 100644 --- a/arch/mips/boot/dts/xilfpga/Makefile +++ b/arch/mips/boot/dts/xilfpga/Makefile @@ -1,6 +1,3 @@ dtb-$(CONFIG_XILFPGA_NEXYS4DDR) += nexys4ddr.dtb obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y)) - -# Force kbuild to make empty built-in.o if necessary -obj- += dummy.o diff --git a/firmware/Makefile b/firmware/Makefile index fa08088..6524be1 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -58,6 +58,3 @@ endif targets := $(patsubst $(obj)/%,%, \ $(shell find $(obj) -name \*.gen.S 2>/dev/null)) -# Without this, built-in.o won't be created when it's empty, and the -# final vmlinux link will fail. -obj- := dummy diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile index cf17c79..4ea6f75 100644 --- a/samples/bpf/Makefile +++ b/samples/bpf/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := test_lru_dist hostprogs-y += sock_example diff --git a/samples/hidraw/Makefile b/samples/hidraw/Makefile index a9ab961..329da9c 100644 --- a/samples/hidraw/Makefile +++ b/samples/hidraw/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := hid-example diff --git a/samples/seccomp/Makefile b/samples/seccomp/Makefile index bf7cc6b..5c6baac 100644 --- a/samples/seccomp/Makefile +++ b/samples/seccomp/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - hostprogs-$(CONFIG_SAMPLE_SECCOMP) := bpf-fancy dropper bpf-direct HOSTCFLAGS_bpf-fancy.o += -I$(objtree)/usr/include diff --git a/samples/sockmap/Makefile b/samples/sockmap/Makefile index 9291ab8..73f1da4 100644 --- a/samples/sockmap/Makefile +++ b/samples/sockmap/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := sockmap diff --git a/samples/statx/Makefile b/samples/statx/Makefile index 1f80a3d..59df7c2 100644 --- a/samples/statx/Makefile +++ b/samples/statx/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-$(CONFIG_SAMPLE_STATX) := test-statx diff --git a/samples/uhid/Makefile b/samples/uhid/Makefile index c95a696..8d7fd61 100644 --- a/samples/uhid/Makefile +++ b/samples/uhid/Makefile @@ -1,6 +1,3 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o - # List of programs to build hostprogs-y := uhid-example -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] kbuild: remove all dummy assignments to obj- 2017-11-07 16:31 ` Masahiro Yamada @ 2017-11-18 4:08 ` Masahiro Yamada -1 siblings, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-18 4:08 UTC (permalink / raw) To: Linux Kbuild mailing list Cc: Rob Herring, Mark Rutland, Pantelis Antoniou, devicetree, Arnd Bergmann, Linux-MIPS, Linux Kernel Mailing List, Michal Marek, Masahiro Yamada, Ralf Baechle, Alexei Starovoitov, netdev, Russell King, Daniel Borkmann, Sam Ravnborg, linux-arm-kernel 2017-11-08 1:31 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>: > Now kbuild core scripts create empty built-in.o where necessary. > Remove "obj- := dummy.o" tricks. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > Applied to linux-kbuild/kbuild. -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/2] kbuild: remove all dummy assignments to obj- @ 2017-11-18 4:08 ` Masahiro Yamada 0 siblings, 0 replies; 12+ messages in thread From: Masahiro Yamada @ 2017-11-18 4:08 UTC (permalink / raw) To: linux-arm-kernel 2017-11-08 1:31 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>: > Now kbuild core scripts create empty built-in.o where necessary. > Remove "obj- := dummy.o" tricks. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > Applied to linux-kbuild/kbuild. -- Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-11-18 4:09 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-11-07 16:31 [PATCH 0/2] kbuild: remove all "obj- := dummy.o" tricks Masahiro Yamada 2017-11-07 16:31 ` Masahiro Yamada 2017-11-07 16:31 ` Masahiro Yamada 2017-11-07 16:31 ` [PATCH 1/2] kbuild: create built-in.o automatically if parent directory wants it Masahiro Yamada 2017-11-09 5:35 ` Sam Ravnborg 2017-11-09 5:53 ` Masahiro Yamada 2017-11-09 16:08 ` Sam Ravnborg 2017-11-18 4:06 ` Masahiro Yamada 2017-11-07 16:31 ` [PATCH 2/2] kbuild: remove all dummy assignments to obj- Masahiro Yamada 2017-11-07 16:31 ` Masahiro Yamada 2017-11-18 4:08 ` Masahiro Yamada 2017-11-18 4:08 ` Masahiro Yamada
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.