Re: Build failure in -next due to 'sh: thin archives fix linking'

From: Guenter Roeck
Date: Wed Jun 28 2017 - 10:02:26 EST


On 06/28/2017 05:58 AM, Nicholas Piggin wrote:
On Wed, 28 Jun 2017 05:38:50 -0700
Guenter Roeck <linux@xxxxxxxxxxxx> wrote:

Hi,

I see the following build error in -next when building sh:rts7751r2dplus_defconfig.

sh4-linux-ld: arch/sh/kernel/vsyscall/vsyscall-dummy.o: compiled for a big endian system and target is little endian
sh4-linux-ld: arch/sh/kernel/vsyscall/vsyscall-dummy.o: uses instructions which are incompatible with instructions used in previous modules
sh4-linux-ld: failed to merge target specific data of file arch/sh/kernel/vsyscall/vsyscall-dummy.o
make[2]: *** [arch/sh/kernel/vsyscall/vsyscall-syms.o] Error 1

Bisect points to 'sh: thin archives fix linking' as the culprit. Bisect log is attached.
I tried with gcc 4.8.3 and 6.3.0, both built with buildroot for sh4eb.

Thanks for the report. In arch/sh/kernel/vsyscall/Makefile, the line:

cmd_syscall_syms = $(LD) -r -o $@ -R $<

Can you try adding $(LDFLAGS), e.g. change it to:

cmd_syscall_syms = $(LD) $(LDFLAGS) -r -o $@ -R $<


That fixes the problem (including the missing symbols seen after reverting the offending patch).

Thanks,
Guenter