[U-Boot] u-boot, powerpc and multilib and linker scripts
Michael Walle
michael at walle.cc
Thu Oct 20 12:05:19 CEST 2016
[CC Wolfgang because he's the ppc maintainer]
Hi,
I've build a powerpc64 cross compile toolchain with multilib support
(using http://crosstool-ng.org/). Eg. the default one is 64bit and you
can choose a 32 bit compile with "-m32". I can compile the bootloader
but linking fails with "libgcc not found". The (correct) 32-bit libgcc.a
is skipped because it is incompatible.
I've debugged the issue and found, that the linker scripts are
responsible for this. OUTPUT_ARCH is set to powerpc. But "powerpc" can
either be the 32 bit BFD or the 64 bit BFD (see [1]). This depends on
which cross compiler you've build. Eg. a "multilib powerpc" or a
"multilib powerpc64". The default linker scripts all use the printable
BFD name for the OUTPUT_ARCH, which has a fixed mapping.
"powerpc:common" for 32 bit and "powerpc:common64" for 64 bit.
Now if I set the OUTPUT_ARCH to "powerpc:common" everything works fine.
But I want to make sure this change is correct and there are no
objections before commiting a patch for all powerpc linker scripts. So
please comment :)
-michael
[1]
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=bfd/cpu-powerpc.c#l51
More information about the U-Boot
mailing list