Re: [PATCH 2/2] x86,vdso: Fix vdso_install

Josh Boyer
2014-06-11T17:26:27Z

On Wed, Jun 11, 2014 at 12:20 PM, Andy Lutomirski <luto@amacapital.net> wrote:
> Rather than monkeying with barely-comprehensible static pattern
> rules, just use an explicit loop.
>
> Signed-off-by: Andy Lutomirski <luto@amacapital.net>
> ---
> arch/x86/vdso/Makefile | 20 +++++++-------------
> 1 file changed, 7 insertions(+), 13 deletions(-)
>
> diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
> index 9769df0..b1c70cc 100644
> --- a/arch/x86/vdso/Makefile
> +++ b/arch/x86/vdso/Makefile
> @@ -9,11 +9,6 @@ VDSOX32-$(CONFIG_X86_X32_ABI) := y
> VDSO32-$(CONFIG_X86_32) := y
> VDSO32-$(CONFIG_COMPAT) := y
>
> -vdso-install-$(VDSO64-y) += vdso.so
> -vdso-install-$(VDSOX32-y) += vdsox32.so
> -vdso-install-$(VDSO32-y) += $(vdso32-images)
> -
> -
> # files to link into the vdso
> vobjs-y := vdso-note.o vclock_gettime.o vgetcpu.o
>
> @@ -176,15 +171,14 @@ VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) \
> GCOV_PROFILE := n
>
> #
> -# Install the unstripped copy of vdso*.so listed in $(vdso-install-y).
> +# Install the unstripped copies of vdso*.so listed in $(vdso-install-y).
> #
> -quiet_cmd_vdso_install = INSTALL $@
> - cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/$@
> -$(vdso-install-y): %.so: $(obj)/%.so.dbg FORCE
> - @mkdir -p $(MODLIB)/vdso
> - $(call cmd,vdso_install)
> +quiet_cmd_vdso_install = INSTALL $(sofile)
> + cmd_vdso_install = cp $(obj)/$(sofile).dbg $(MODLIB)/vdso/$(sofile)
>
> -PHONY += vdso_install $(vdso-install-y)
> -vdso_install: $(vdso-install-y)
> +PHONY += vdso_install
> +vdso_install: $(vdso_img_sodbg:%=$(obj)/%) FORCE
> + @mkdir -p $(MODLIB)/vdso
> + @$(foreach sofile,$(vdso_img_sodbg:%.dbg=%),$(call recipe-cmd,vdso_install);)

So this does fix the invocation of 'make vdso_install' and the
resulting files look to be accurate to me, with the glaring exception
that now we get e.g. vdso64.so on x86_64 as the installed file instead
of vdso.so. How much that actually matters, I have no idea.
Plausibly fixed with a symlink if we really need to perhaps.

josh