2019-09-22 19:28:45

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH] sparc: vdso: fix build error of vdso32

Since commit 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to
take the path relative to $(obj)"), sparc allmodconfig fails to build
as follows:

CC arch/sparc/vdso/vdso32/vclock_gettime.o
unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
arch/sparc/vdso/vdso32/vclock_gettime.o: failed

The cause of the breakage is that -pg flag not being dropped.

The vdso32 files are located in the vdso32/ subdirectory, but I missed
to update the Makefile.

Fixes: 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
Reported-by: Anatoly Pugachev <[email protected]>
Signed-off-by: Masahiro Yamada <[email protected]>
---

arch/sparc/vdso/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/sparc/vdso/Makefile b/arch/sparc/vdso/Makefile
index 324a23947585..399bc22b1cf8 100644
--- a/arch/sparc/vdso/Makefile
+++ b/arch/sparc/vdso/Makefile
@@ -67,12 +67,14 @@ $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(SPARC_REG_CFLAGS
#
CFLAGS_REMOVE_vdso-note.o = -pg
CFLAGS_REMOVE_vclock_gettime.o = -pg
+CFLAGS_REMOVE_vdso32/vdso-note.o = -pg
+CFLAGS_REMOVE_vdso32/vclock_gettime.o = -pg

$(obj)/%.so: OBJCOPYFLAGS := -S
$(obj)/%.so: $(obj)/%.so.dbg FORCE
$(call if_changed,objcopy)

-CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
+CPPFLAGS_vdso32/vdso32.lds = $(CPPFLAGS_vdso.lds)
VDSO_LDFLAGS_vdso32.lds = -m elf32_sparc -soname linux-gate.so.1

#This makes sure the $(obj) subdirectory exists even though vdso32/
--
2.17.1


2019-09-27 15:50:06

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] sparc: vdso: fix build error of vdso32

On Sun, Sep 22, 2019 at 8:36 PM Masahiro Yamada
<[email protected]> wrote:
>
> Since commit 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to
> take the path relative to $(obj)"), sparc allmodconfig fails to build
> as follows:
>
> CC arch/sparc/vdso/vdso32/vclock_gettime.o
> unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> arch/sparc/vdso/vdso32/vclock_gettime.o: failed
>
> The cause of the breakage is that -pg flag not being dropped.
>
> The vdso32 files are located in the vdso32/ subdirectory, but I missed
> to update the Makefile.
>
> Fixes: 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
> Reported-by: Anatoly Pugachev <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---
>


I am copy-pasting Tested-by from the reporter:

Tested-by: Anatoly Pugachev <[email protected]>

It was given here:

https://lkml.org/lkml/2019/9/25/197




> arch/sparc/vdso/Makefile | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/sparc/vdso/Makefile b/arch/sparc/vdso/Makefile
> index 324a23947585..399bc22b1cf8 100644
> --- a/arch/sparc/vdso/Makefile
> +++ b/arch/sparc/vdso/Makefile
> @@ -67,12 +67,14 @@ $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(SPARC_REG_CFLAGS
> #
> CFLAGS_REMOVE_vdso-note.o = -pg
> CFLAGS_REMOVE_vclock_gettime.o = -pg
> +CFLAGS_REMOVE_vdso32/vdso-note.o = -pg
> +CFLAGS_REMOVE_vdso32/vclock_gettime.o = -pg
>
> $(obj)/%.so: OBJCOPYFLAGS := -S
> $(obj)/%.so: $(obj)/%.so.dbg FORCE
> $(call if_changed,objcopy)
>
> -CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
> +CPPFLAGS_vdso32/vdso32.lds = $(CPPFLAGS_vdso.lds)
> VDSO_LDFLAGS_vdso32.lds = -m elf32_sparc -soname linux-gate.so.1
>
> #This makes sure the $(obj) subdirectory exists even though vdso32/
> --
> 2.17.1
>


--
Best Regards
Masahiro Yamada

2019-10-19 07:59:56

by Anatoly Pugachev

[permalink] [raw]
Subject: Re: [PATCH] sparc: vdso: fix build error of vdso32

On Fri, Sep 27, 2019 at 6:47 PM Masahiro Yamada
<[email protected]> wrote:
>
> On Sun, Sep 22, 2019 at 8:36 PM Masahiro Yamada
> <[email protected]> wrote:
> >
> > Since commit 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to
> > take the path relative to $(obj)"), sparc allmodconfig fails to build
> > as follows:
> >
> > CC arch/sparc/vdso/vdso32/vclock_gettime.o
> > unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> > arch/sparc/vdso/vdso32/vclock_gettime.o: failed
> >
> > The cause of the breakage is that -pg flag not being dropped.
> >
> > The vdso32 files are located in the vdso32/ subdirectory, but I missed
> > to update the Makefile.
> >
> > Fixes: 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
> > Reported-by: Anatoly Pugachev <[email protected]>
> > Signed-off-by: Masahiro Yamada <[email protected]>
> > ---
> >
>
>
> I am copy-pasting Tested-by from the reporter:
>
> Tested-by: Anatoly Pugachev <[email protected]>
>
> It was given here:
>
> https://lkml.org/lkml/2019/9/25/197
>
>
>
>
> > arch/sparc/vdso/Makefile | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/sparc/vdso/Makefile b/arch/sparc/vdso/Makefile
> > index 324a23947585..399bc22b1cf8 100644
> > --- a/arch/sparc/vdso/Makefile
> > +++ b/arch/sparc/vdso/Makefile
> > @@ -67,12 +67,14 @@ $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(SPARC_REG_CFLAGS
> > #
> > CFLAGS_REMOVE_vdso-note.o = -pg
> > CFLAGS_REMOVE_vclock_gettime.o = -pg
> > +CFLAGS_REMOVE_vdso32/vdso-note.o = -pg
> > +CFLAGS_REMOVE_vdso32/vclock_gettime.o = -pg
> >
> > $(obj)/%.so: OBJCOPYFLAGS := -S
> > $(obj)/%.so: $(obj)/%.so.dbg FORCE
> > $(call if_changed,objcopy)
> >
> > -CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
> > +CPPFLAGS_vdso32/vdso32.lds = $(CPPFLAGS_vdso.lds)
> > VDSO_LDFLAGS_vdso32.lds = -m elf32_sparc -soname linux-gate.so.1
> >
> > #This makes sure the $(obj) subdirectory exists even though vdso32/


Hello!

Can someone please pull/apply this to master ?!

Thanks!

2019-11-14 00:01:07

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] sparc: vdso: fix build error of vdso32

On Sun, Sep 22, 2019 at 08:34:36PM +0900, Masahiro Yamada wrote:
> Since commit 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to
> take the path relative to $(obj)"), sparc allmodconfig fails to build
> as follows:
>
> CC arch/sparc/vdso/vdso32/vclock_gettime.o
> unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> arch/sparc/vdso/vdso32/vclock_gettime.o: failed
>
> The cause of the breakage is that -pg flag not being dropped.
>
> The vdso32 files are located in the vdso32/ subdirectory, but I missed
> to update the Makefile.
>
> Fixes: 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
> Reported-by: Anatoly Pugachev <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>

I've tripped over this as well. Since no one has picked this up, can you
take it via your tree Masahiro?

Thanks!

-Kees

> ---
>
> arch/sparc/vdso/Makefile | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/sparc/vdso/Makefile b/arch/sparc/vdso/Makefile
> index 324a23947585..399bc22b1cf8 100644
> --- a/arch/sparc/vdso/Makefile
> +++ b/arch/sparc/vdso/Makefile
> @@ -67,12 +67,14 @@ $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(SPARC_REG_CFLAGS
> #
> CFLAGS_REMOVE_vdso-note.o = -pg
> CFLAGS_REMOVE_vclock_gettime.o = -pg
> +CFLAGS_REMOVE_vdso32/vdso-note.o = -pg
> +CFLAGS_REMOVE_vdso32/vclock_gettime.o = -pg
>
> $(obj)/%.so: OBJCOPYFLAGS := -S
> $(obj)/%.so: $(obj)/%.so.dbg FORCE
> $(call if_changed,objcopy)
>
> -CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
> +CPPFLAGS_vdso32/vdso32.lds = $(CPPFLAGS_vdso.lds)
> VDSO_LDFLAGS_vdso32.lds = -m elf32_sparc -soname linux-gate.so.1
>
> #This makes sure the $(obj) subdirectory exists even though vdso32/
> --
> 2.17.1
>

--
Kees Cook

2019-11-14 00:23:54

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] sparc: vdso: fix build error of vdso32

From: Kees Cook <[email protected]>
Date: Wed, 13 Nov 2019 15:59:27 -0800

> On Sun, Sep 22, 2019 at 08:34:36PM +0900, Masahiro Yamada wrote:
>> Since commit 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to
>> take the path relative to $(obj)"), sparc allmodconfig fails to build
>> as follows:
>>
>> CC arch/sparc/vdso/vdso32/vclock_gettime.o
>> unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
>> arch/sparc/vdso/vdso32/vclock_gettime.o: failed
>>
>> The cause of the breakage is that -pg flag not being dropped.
>>
>> The vdso32 files are located in the vdso32/ subdirectory, but I missed
>> to update the Makefile.
>>
>> Fixes: 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
>> Reported-by: Anatoly Pugachev <[email protected]>
>> Signed-off-by: Masahiro Yamada <[email protected]>
>
> I've tripped over this as well. Since no one has picked this up, can you
> take it via your tree Masahiro?

Yes, please do. Sorry, I haven't had a lot of time for Sparc work lately.

Acked-by: David S. Miller <[email protected]>

2019-11-14 15:13:21

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] sparc: vdso: fix build error of vdso32

On Thu, Nov 14, 2019 at 9:22 AM David Miller <[email protected]> wrote:
>
> From: Kees Cook <[email protected]>
> Date: Wed, 13 Nov 2019 15:59:27 -0800
>
> > On Sun, Sep 22, 2019 at 08:34:36PM +0900, Masahiro Yamada wrote:
> >> Since commit 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to
> >> take the path relative to $(obj)"), sparc allmodconfig fails to build
> >> as follows:
> >>
> >> CC arch/sparc/vdso/vdso32/vclock_gettime.o
> >> unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> >> arch/sparc/vdso/vdso32/vclock_gettime.o: failed
> >>
> >> The cause of the breakage is that -pg flag not being dropped.
> >>
> >> The vdso32 files are located in the vdso32/ subdirectory, but I missed
> >> to update the Makefile.
> >>
> >> Fixes: 54b8ae66ae1a ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
> >> Reported-by: Anatoly Pugachev <[email protected]>
> >> Signed-off-by: Masahiro Yamada <[email protected]>
> >
> > I've tripped over this as well. Since no one has picked this up, can you
> > take it via your tree Masahiro?
>
> Yes, please do. Sorry, I haven't had a lot of time for Sparc work lately.
>
> Acked-by: David S. Miller <[email protected]>


Applied to linux-kbuild.

--
Best Regards
Masahiro Yamada