sparc: vdso: Fix build failure seen due to kbuild changes
diff mbox series

Message ID 20191111011106.18427-1-linux@roeck-us.net
State New
Headers show
Series
  • sparc: vdso: Fix build failure seen due to kbuild changes
Related show

Commit Message

Guenter Roeck Nov. 11, 2019, 1:11 a.m. UTC
sparc64:allmodconfig fails to build with the following error.

unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
arch/sparc/vdso/vdso32/vclock_gettime.o: failed
make[2]: *** [arch/sparc/vdso/vdso32/vclock_gettime.o] Error 1
make[2]: *** Deleting file 'arch/sparc/vdso/vdso32/vclock_gettime.o'
make[2]: *** Waiting for unfinished jobs....

The problem bisects to commit a3de7a72c517 ("kbuild: change
*FLAGS_<basetarget>.o to take the path relative to $(obj)").
Duplicate the x86 specific defines from this commit to the sparc
vdso Makefile to fix the problem.

Fixes: a3de7a72c517 ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Marc Zyngier <maz@kernel.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 arch/sparc/vdso/Makefile | 2 ++
 1 file changed, 2 insertions(+)

Comments

David Miller Nov. 11, 2019, 1:32 a.m. UTC | #1
From: Guenter Roeck <linux@roeck-us.net>
Date: Sun, 10 Nov 2019 17:11:06 -0800

> sparc64:allmodconfig fails to build with the following error.
> 
> unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> arch/sparc/vdso/vdso32/vclock_gettime.o: failed
> make[2]: *** [arch/sparc/vdso/vdso32/vclock_gettime.o] Error 1
> make[2]: *** Deleting file 'arch/sparc/vdso/vdso32/vclock_gettime.o'
> make[2]: *** Waiting for unfinished jobs....
> 
> The problem bisects to commit a3de7a72c517 ("kbuild: change
> *FLAGS_<basetarget>.o to take the path relative to $(obj)").
> Duplicate the x86 specific defines from this commit to the sparc
> vdso Makefile to fix the problem.
> 
> Fixes: a3de7a72c517 ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Cc: Marc Zyngier <maz@kernel.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>

Acked-by: David S. Miller <davem@davemloft.net>
Masahiro Yamada Nov. 11, 2019, 1:47 a.m. UTC | #2
On Mon, Nov 11, 2019 at 10:32 AM David Miller <davem@davemloft.net> wrote:
>
> From: Guenter Roeck <linux@roeck-us.net>
> Date: Sun, 10 Nov 2019 17:11:06 -0800
>
> > sparc64:allmodconfig fails to build with the following error.
> >
> > unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> > arch/sparc/vdso/vdso32/vclock_gettime.o: failed
> > make[2]: *** [arch/sparc/vdso/vdso32/vclock_gettime.o] Error 1
> > make[2]: *** Deleting file 'arch/sparc/vdso/vdso32/vclock_gettime.o'
> > make[2]: *** Waiting for unfinished jobs....
> >
> > The problem bisects to commit a3de7a72c517 ("kbuild: change
> > *FLAGS_<basetarget>.o to take the path relative to $(obj)").
> > Duplicate the x86 specific defines from this commit to the sparc
> > vdso Makefile to fix the problem.
> >
> > Fixes: a3de7a72c517 ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
> > Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> > Cc: Marc Zyngier <maz@kernel.org>
> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>
> Acked-by: David S. Miller <davem@davemloft.net>


Yeah, I had submitted a fix a long time before.

https://lore.kernel.org/patchwork/patch/1130469/

I do not know why it was not picked up.


It is OK whether any patch is picked up
as long as the build error is fixed.


(I think  CFLAGS_REMOVE_vdso32/vdso-note.o
should be added too, though)
Guenter Roeck Nov. 11, 2019, 2:35 p.m. UTC | #3
On 11/10/19 5:47 PM, Masahiro Yamada wrote:
> On Mon, Nov 11, 2019 at 10:32 AM David Miller <davem@davemloft.net> wrote:
>>
>> From: Guenter Roeck <linux@roeck-us.net>
>> Date: Sun, 10 Nov 2019 17:11:06 -0800
>>
>>> sparc64:allmodconfig fails to build with the following error.
>>>
>>> unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
>>> arch/sparc/vdso/vdso32/vclock_gettime.o: failed
>>> make[2]: *** [arch/sparc/vdso/vdso32/vclock_gettime.o] Error 1
>>> make[2]: *** Deleting file 'arch/sparc/vdso/vdso32/vclock_gettime.o'
>>> make[2]: *** Waiting for unfinished jobs....
>>>
>>> The problem bisects to commit a3de7a72c517 ("kbuild: change
>>> *FLAGS_<basetarget>.o to take the path relative to $(obj)").
>>> Duplicate the x86 specific defines from this commit to the sparc
>>> vdso Makefile to fix the problem.
>>>
>>> Fixes: a3de7a72c517 ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
>>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>>> Cc: Marc Zyngier <maz@kernel.org>
>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>
>> Acked-by: David S. Miller <davem@davemloft.net>
> 
> 
> Yeah, I had submitted a fix a long time before.
> 
> https://lore.kernel.org/patchwork/patch/1130469/
> 
> I do not know why it was not picked up.
> 

Why don't you just push it upstream yourself ?

> 
> It is OK whether any patch is picked up
> as long as the build error is fixed.
> 
Same here.

> 
> (I think  CFLAGS_REMOVE_vdso32/vdso-note.o
> should be added too, though)
> 
Hard to decide for someone not involved in vdso development.
It wasn't added for x86, and it compiles without, so I rather
left it alone.

Guenter
Masahiro Yamada Nov. 12, 2019, 12:06 p.m. UTC | #4
On Mon, Nov 11, 2019 at 11:35 PM Guenter Roeck <linux@roeck-us.net> wrote:
>
> On 11/10/19 5:47 PM, Masahiro Yamada wrote:
> > On Mon, Nov 11, 2019 at 10:32 AM David Miller <davem@davemloft.net> wrote:
> >>
> >> From: Guenter Roeck <linux@roeck-us.net>
> >> Date: Sun, 10 Nov 2019 17:11:06 -0800
> >>
> >>> sparc64:allmodconfig fails to build with the following error.
> >>>
> >>> unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> >>> arch/sparc/vdso/vdso32/vclock_gettime.o: failed
> >>> make[2]: *** [arch/sparc/vdso/vdso32/vclock_gettime.o] Error 1
> >>> make[2]: *** Deleting file 'arch/sparc/vdso/vdso32/vclock_gettime.o'
> >>> make[2]: *** Waiting for unfinished jobs....
> >>>
> >>> The problem bisects to commit a3de7a72c517 ("kbuild: change
> >>> *FLAGS_<basetarget>.o to take the path relative to $(obj)").
> >>> Duplicate the x86 specific defines from this commit to the sparc
> >>> vdso Makefile to fix the problem.
> >>>
> >>> Fixes: a3de7a72c517 ("kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)")
> >>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> >>> Cc: Marc Zyngier <maz@kernel.org>
> >>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> >>
> >> Acked-by: David S. Miller <davem@davemloft.net>
> >
> >
> > Yeah, I had submitted a fix a long time before.
> >
> > https://lore.kernel.org/patchwork/patch/1130469/
> >
> > I do not know why it was not picked up.
> >
>
> Why don't you just push it upstream yourself ?
>
> >
> > It is OK whether any patch is picked up
> > as long as the build error is fixed.
> >
> Same here.
>
> >
> > (I think  CFLAGS_REMOVE_vdso32/vdso-note.o
> > should be added too, though)
> >
> Hard to decide for someone not involved in vdso development.
> It wasn't added for x86, and it compiles without, so I rather
> left it alone.


After looking at the code closer,
I believe your code is more correct.

vdso-note is assembly instead of C.

arch/sparc/vdso/vdso-note.S
arch/sparc/vdso/vdso32/vdso-note.S



The -pg flag is added by the top Makefile,
only for C files.


CFLAGS_REMOVE_vdso-note.o = -pg
was unneeded in the first place.



BTW, I just thought this patch
was supposed to be applied by Dave
since it is touching a single file in arch/sparc/.

If Dave plans to pick up this, please feel free to add:

Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>


If I should apply this to kbuild tree, please let me know.

Patch
diff mbox series

diff --git a/arch/sparc/vdso/Makefile b/arch/sparc/vdso/Makefile
index 324a23947585..cb72a205cd7e 100644
--- a/arch/sparc/vdso/Makefile
+++ b/arch/sparc/vdso/Makefile
@@ -67,6 +67,7 @@  $(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/vclock_gettime.o = -pg
 
 $(obj)/%.so: OBJCOPYFLAGS := -S
 $(obj)/%.so: $(obj)/%.so.dbg FORCE
@@ -74,6 +75,7 @@  $(obj)/%.so: $(obj)/%.so.dbg FORCE
 
 CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
 VDSO_LDFLAGS_vdso32.lds = -m elf32_sparc -soname linux-gate.so.1
+VDSO_LDFLAGS_vdso32/vdso32.lds = -m elf32_sparc -soname linux-gate.so.1
 
 #This makes sure the $(obj) subdirectory exists even though vdso32/
 #is not a kbuild sub-make subdirectory