PPC byte ordering

Timothy A. Seufert tas at mindspring.com
Tue Oct 31 22:23:01 EST 2000


At 1:18 PM +0100 10/30/00, Geert Uytterhoeven wrote:
>On Mon, 30 Oct 2000, Timothy A. Seufert wrote:
>>  At 5:24 PM -0700 10/28/00, Neil Russell wrote:
>>  >It would in theory be possible to have the kernel run big-endian as it is
>>  >and have certain user programs run little endian by setting the LE bit in
>>  >the MSR register for the process in question.  The real problem here is
>>  >that you have to add a *lot* of code to system calls to make this work.
>>  >There are a few system calls that this would be real difficult, such
>>  >as ioctl().  I once looked into doing this for the MIPS with SVR4 UNIX.
>>
>>  The other real problem is that Linus Torvalds has already said that
>>  he will never ever in a million years accept a patch which attempts
>>  to do such a thing, so you'd have to fork the kernel to do it.
>>  According to Linus, architectures are either big or little-endian,
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>  not both.  A sane position considering the syscall ugliness you
>   ^^^^^^^^^
>>  mention...
>
>Really? Or did he mean: big-endian kernels must not run little-endian binaries
>and vice versa.
>
>Note that there exist 3 flavors of MIPS: 32-bit big-endian, 32-bit
>little-endian and 64-bit. Linux supports them all. Expect to upgrade the hard
>drives on your local Debian mirror soon :-)

You're absolutely correct -- what he doesn't want (at least as I
interpreted the email I'm remembering from a linux-kernel discussion)
is mixing modes.  In other words, the official Linus kernel will
never support mixed LE and BE processes at runtime; you must choose
one or the other at kernel compile time.

   Tim Seufert

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list