Messages in this thread Patch in this message | | | From | Laurent Vivier <> | Subject | [PATCH] powerpc: allow cross-compilation of ppc64 kernel | Date | Thu, 5 Nov 2015 12:47:09 +0100 |
| |
When I try to cross compile a ppc64 kernel, it generally fails on the VDSO stage. This is true for powerpc64 cross- compiler, but also when I try to build a ppc64le kernel on a ppc64 host.
VDSO64L fails:
VDSO64L arch/powerpc/kernel/vdso64/vdso64.so.dbg /usr/bin/powerpc64-linux-gnu-ld: arch/powerpc/kernel/vdso64/sigtramp.o: file class ELFCLASS64 incompatible with ELFCLASS32 /usr/bin/powerpc64-linux-gnu-ld: final link failed: File in wrong format
This fails because gcc calls "collect2" with "--oformat elf32-powerpcle" with ppc64 objects, without the "--oformat" ld works well because it use the format of the first object as output format.
As this case is correctly managed to build the other kernel objects, this patch replaces $(GCC) by $(LD) to generate the VDSO objects.
Signed-off-by: Laurent Vivier <laurent@vivier.eu> --- arch/powerpc/kernel/vdso64/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/vdso64/Makefile b/arch/powerpc/kernel/vdso64/Makefile index effca94..618c420 100644 --- a/arch/powerpc/kernel/vdso64/Makefile +++ b/arch/powerpc/kernel/vdso64/Makefile @@ -36,7 +36,7 @@ $(obj-vdso64): %.o: %.S # actual build commands quiet_cmd_vdso64ld = VDSO64L $@ - cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ + cmd_vdso64ld = $(LD) $(LDFLAGS) $(ldflags-y) -T $^ -o $@ quiet_cmd_vdso64as = VDSO64A $@ cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< -- 2.5.0
| |