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

Andy Lutomirski
2014-06-11T19:19:00Z

On Wed, Jun 11, 2014 at 12:16 PM, Sam Ravnborg <sam@ravnborg.org> wrote:
>> >
>> > Can we please fix this in a way where we do not need to add stuff to core kbuild.
>> > If the original approach was used then make took care of the looping
>> > and the foreach part was not needed.
> Following is my first quick approach.
> It reuses the old - a little complex logic to do the looping and copying.
> Thsi is only tested on my i386 box / build.
>
> Sam
>
>
> diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
> index 9769df0..39fb152 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
>
> @@ -179,12 +174,12 @@ GCOV_PROFILE := n
> # Install the unstripped copy 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
> + cmd_vdso_install = cp $(obj)/$@ $(MODLIB)/vdso/$(@:.dbg=)

> +$(vdso_img_sodbg): %.so.dbg: $(obj)/%.so.dbg FORCE
> @mkdir -p $(MODLIB)/vdso
> $(call cmd,vdso_install)

The part that scares me is that this rule defines targets with names
like vdso64.so.dbg, which are the names of actual files (admittedly,
they're missing the path, but still). This seems fragile.

>
> -PHONY += vdso_install $(vdso-install-y)
> -vdso_install: $(vdso-install-y)
> +PHONY += vdso_install $(vdso_img_sodbg)
> +vdso_install: $(vdso_img_sodbg)
>
> clean-files := vdso32-syscall* vdso32-sysenter* vdso32-int80*
>

--
Andy Lutomirski
AMA Capital Management, LLC