|
|
Subscribe / Log in / New account

The x32 subarchitecture may be removed

The x32 subarchitecture may be removed

Posted Dec 13, 2018 16:51 UTC (Thu) by jensend (guest, #1385)
In reply to: The x32 subarchitecture may be removed by luto
Parent article: The x32 subarchitecture may be removed

Would you be willing to enlighten us a little as to how arm64 ILP32 is so different?


to post comments

The x32 subarchitecture may be removed

Posted Jan 8, 2019 18:57 UTC (Tue) by plugwash (subscriber, #29694) [Link]

The definitions of many key data structures change between 32-bit and 64-bit versions of a given architecture. The design of some APIs (for example ioctl) mean that the data structures used by userland can reach deeply into the kernel. To support this the Linux kernel has a compatibility flag which runs equally deeply into the kernel.

x32 was designed (under Linus's direction) to be as similar to x86-64 as possible, only differing from it in cases where doing so was nessacery to follow posix. Unfortunately this lead to it falling unconfortably between the two stools, it's data structures end up being different from both x86 and x64 but the framework designed to support 32-bit compatibility on 64-bit kernels was only designed to support a single backward compatibility mode.

As I understand it arm64ilp32 instead takes the approach of making the new ilp32 mode as similar to the old 32-bit mode as possible. This approach keeps the changes required more localised but Linus did not like it because it also brings forward legacy baggage from the 32-bit architecture (the example Linus used was the year 2038 issue).


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds