Re: odd endianness toolchains for crosstool

From: Jason A. Donenfeld
Date: Mon Apr 25 2022 - 11:53:46 EST


Hi Arnd,

On Mon, Apr 25, 2022 at 05:39:34PM +0200, Arnd Bergmann wrote:
> I can probably do that before migrating to the new machine, but I can't
> promise how quickly I find time to start.

Oh awesome. Will keep my eye out for it.

> > (And also, build ppc32 with --enable-secureplt --with-long-double-64.)
>
> Can you explain what those are about? Is this related to the ELFv1
> vs ELFv2 difference or something else? Is this needed in both the
> ppc32 and ppc64 compilers that each come with both targets?

For 32-bit, it is required. From
<https://wiki.musl-libc.org/supported-platforms.html>:

powerpc (needs gcc built with --enable-secureplt
--with-long-double-64, and -Wl,--secure-plt to link dynamic
binaries.)

And from the INSTALL file it says:

* PowerPC
* Compiler toolchain must provide 64-bit long double, not IBM
double-double or IEEE quad
* For dynamic linking, compiler toolchain must be configured for
"secure PLT" variant

For 64-bit, I'm not sure, but I know that at least -mabi=elfv2 is required,
and I think --with-long-double-64 too, according to documentation:

* PowerPC64
* Both little and big endian variants are supported
* Compiler toolchain must provide 64-bit long double, not IBM
double-double or IEEE quad
* Compiler toolchain must use the new (ELFv2) ABI regardless of
whether it is for little or big endian

Taken from <https://git.musl-libc.org/cgit/musl/tree/INSTALL#n35>.

Jason