Message ID | 1554281302-21105-1-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | Accepted |
Commit | 697e96ed1720d6aad196e7a663d545df2edd44a4 |
Headers | show |
Series | arm64: vdso: fix and clean-up Makefile | expand |
Hi Masahiro, On Wed, Apr 03, 2019 at 05:48:22PM +0900, Masahiro Yamada wrote: > - $(call if_changed,...) must have FORCE as a prerequisite > > - vdso.lds is a generated file, so it should be prefixed with > $(obj)/ instead of $(src)/. Hmm, this sounds quite alarming! How come out of tree builds seem to work ok without this patch? Will
Hi Will, On Wed, Apr 3, 2019 at 9:45 PM Will Deacon <will.deacon@arm.com> wrote: > > Hi Masahiro, > > On Wed, Apr 03, 2019 at 05:48:22PM +0900, Masahiro Yamada wrote: > > - $(call if_changed,...) must have FORCE as a prerequisite > > > > - vdso.lds is a generated file, so it should be prefixed with > > $(obj)/ instead of $(src)/. > > Hmm, this sounds quite alarming! How come out of tree builds seem to work > ok without this patch? No, I do not mean like that. This is just cosmetic (at least for now). Kbuild conventionally use both $(obj) and $(src), but they are the same in most places. If you see the top of scripts/Makefile.build, $(src) is the same as $(obj). I fixed this x86 in commit 1742ed2088. VDSO Makefiles are copied from arch to arch. -- Best Regards Masahiro Yamada
On Thu, Apr 04, 2019 at 02:04:23AM +0900, Masahiro Yamada wrote: > On Wed, Apr 3, 2019 at 9:45 PM Will Deacon <will.deacon@arm.com> wrote: > > On Wed, Apr 03, 2019 at 05:48:22PM +0900, Masahiro Yamada wrote: > > > - $(call if_changed,...) must have FORCE as a prerequisite > > > > > > - vdso.lds is a generated file, so it should be prefixed with > > > $(obj)/ instead of $(src)/. > > > > Hmm, this sounds quite alarming! How come out of tree builds seem to work > > ok without this patch? > > No, I do not mean like that. > This is just cosmetic (at least for now). > Kbuild conventionally use both $(obj) and $(src), but > they are the same in most places. > If you see the top of scripts/Makefile.build, > $(src) is the same as $(obj). Ah thanks, that makes much more sense. I'll queue this up for 5.2. Will
diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile index b801ee5..c9ad9aa 100644 --- a/arch/arm64/kernel/vdso/Makefile +++ b/arch/arm64/kernel/vdso/Makefile @@ -31,7 +31,7 @@ CPPFLAGS_vdso.lds += -P -C -U$(ARCH) $(obj)/vdso.o : $(obj)/vdso.so # Link rule for the .so file, .lds has to be first -$(obj)/vdso.so.dbg: $(src)/vdso.lds $(obj-vdso) +$(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) FORCE $(call if_changed,vdsold) # Strip rule for the .so file @@ -42,9 +42,7 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE # Generate VDSO offsets using helper script gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh quiet_cmd_vdsosym = VDSOSYM $@ -define cmd_vdsosym - $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@ -endef + cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@ include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE $(call if_changed,vdsosym) @@ -55,7 +53,7 @@ $(obj-vdso): %.o: %.S FORCE # Actual build commands quiet_cmd_vdsold = VDSOL $@ - cmd_vdsold = $(CC) $(c_flags) -Wl,-n -Wl,-T $^ -o $@ + cmd_vdsold = $(CC) $(c_flags) -Wl,-n -Wl,-T $(real-prereqs) -o $@ quiet_cmd_vdsoas = VDSOA $@ cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $<
- $(call if_changed,...) must have FORCE as a prerequisite - vdso.lds is a generated file, so it should be prefixed with $(obj)/ instead of $(src)/. - cmd_vdsosym is a one-liner rule, so the assignment with '=' is simpler. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- arch/arm64/kernel/vdso/Makefile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) -- 2.7.4