ppc64le and 32-bit LE userland compatibility
Mon Jun 1 23:45:51 GMT 2020
On Tue, 2 Jun 2020, Daniel Kolesa wrote:
> Are you sure this would be a new port? Glibc already works in this
> combination, as it seems to me it'd be best if it was just a variant of
> the existing 32-bit PowerPC port, sharing most conventions besides
> endianness with the BE port.
The supported glibc ABIs are listed at
<https://sourceware.org/glibc/wiki/ABIList>. This would be a new ABI,
which should have a new ABI-and-architecture-specific dynamic linker name
(all new ports are expected to have a unique dynamic linker name for each
ABI, to support systems using multiarch directory arrangements), new
symbol versions and avoid legacy features such as 32-bit time or offsets
or IBM long double.
> 128-bit IEEE long double would not work, since that relies on VSX being
> present (gcc will explicitly complain if it's not). I'd be all for using
The minimum supported architecture for powerpc64le (POWER8) has VSX. My
understanding was that the suggestion was for 32-bit userspace to run
under powerpc64le kernels running on POWER8 or later, meaning that such a
32-bit LE port, and any ABI designed for such a port, can assume VSX is
available. Or does VSX not work, at the hardware level, for 32-bit
POWER8? (In which case you could pick another ABI for binary128 argument
passing and return.)
> There is also one more thing while we're at this. The 64-bit big endian
> Void port uses the ELFv2 ABI, even on glibc. This is not officially
> supported on glibc as far as I can tell, but it does work out of box,
> without any patching (things in general match little endian then, i.e.
> ld64.so.2 etc, but they're big endian). Is there any chance of making
> that support official?
If you want to support ELFv2 for 64-bit big endian in glibc, again that
should have a unique dynamic linker name, new symbol versions, only
binary128 long double, etc. - avoid all the legacy aspects of the existing
ELFv1 port rather than selectively saying that "ELFv1" itself is the only
legacy aspect and keeping the others (when it's the others that are
actually more problematic in glibc).
Joseph S. Myers
More information about the Libc-alpha