On Tue, 03 Sep 2019 10:00:57 +1000 Michael Ellerman <m...@ellerman.id.au> wrote:
> Michal Suchánek <msucha...@suse.de> writes: > > On Mon, 02 Sep 2019 12:03:12 +1000 > > Michael Ellerman <m...@ellerman.id.au> wrote: > > > >> Michal Suchanek <msucha...@suse.de> 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. > > > > I have seen a piece of software that workarounds code issues on 64bit > > by always compiling 32bit code. So it does work in some way. > > What software is that? The only one I have seen is stockfish (v9) > > > Also it has been pointed out that you can still switch to BE even with > > the 'fast-switch' removed. > > Yes we have a proper syscall for endian switching, sys_switch_endian(), > which is definitely supported. > > But that *only* switches the endian-ness of the process, it does nothing > to the syscall layer. So any process that switches to the other endian > must endian flip syscall arguments (that aren't in registers), or flip > back to the native endian before calling syscalls. In other words just installing a chroot of binaries built for the other endian won't work. You need something like qemu to do the syscall translation or run full VM with a kernel that has the swapped endian syscall ABI. Thanks Michal