Re: [PATCH v7 5/6] powerpc/64: Make COMPAT user-selectable disabled on littleendian by default.

From: Christophe Leroy
Date: Tue Sep 03 2019 - 01:21:59 EST




On 09/02/2019 11:53 PM, Michael Ellerman wrote:
Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx> writes:
On Mon, Sep 02, 2019 at 12:03:12PM +1000, Michael Ellerman wrote:
Michal Suchanek <msuchanek@xxxxxxx> writes:
On bigendian ppc64 it is common to have 32bit legacy binaries but much
less so on littleendian.

I think the toolchain people will tell you that there is no 32-bit
little endian ABI defined at all, if anything works it's by accident.
^
v2

There of course is a lot of powerpcle-* support. The ABI used for it
on linux is the SYSV ABI, just like on BE 32-bit.

I was talking about ELFv2, which is 64-bit only. But that was based on
me thinking we had a hard assumption in the kernel that ppc64le kernels
always expect ELFv2 userland. Looking at the code though I was wrong
about that, it looks like we will run little endian ELFv1 binaries,
though I don't think anyone is testing it.

There also is specific powerpcle-linux support in GCC, and in binutils,
too. Also, config.guess/config.sub supports it. Half a year ago this
all built fine (no, I don't test it often either).

I don't think glibc supports it though, so I wonder if anyone builds an
actual system with it? Maybe busybox or the like?

So I think we should not make this selectable, unless someone puts their
hand up to say they want it and are willing to test it and keep it
working.

What about actual 32-bit LE systems? Does anyone still use those?

Not that I've ever heard of.


We dropped support from 32-bit LE at least with a1f3ae3fe8a1 ("powerpc/32: Use stmw/lmw for registers save/restore in asm").

Discussion about it can be found at https://patchwork.ozlabs.org/patch/899465/

Christophe