News: 0001636208

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux Developers Looking At Retiring The x32 ABI

([Linux Kernel] 3 Hours Ago Linux x32)


The Linux x32 ABI for x86_64 processors allow making use of the full 64-bit register file and wide data path but retaining 32-bit pointers to provide for a smaller memory footprint when not needing 64-bit pointers. Linux x32 came to the party late and didn't enjoy much adoption over the years and is now looking at possible removal from the Linux kernel.

The [1]x32 code was a nice concept for helping lower memory footprint requirements while otherwise making use of the x86_64 capabilities, but with its limited adoption and x86_64 simply being the de facto standard these days, Linux kernel developers are looking at phasing out the x32 ABI. The x32 ABI was [2]added in Linux 3.4 back in 2012 plus also required updated compiler support too.

Sebastian Andrzej Siewior of Linutronix argued in [3]the patch starting to remove the x32 ABI:

"The x32 ABI was introduced in v3.4 to leverage the additional registers which were available on x86_64 but not on i386 while keeping the smaller 32bit pointers.

This did not take off. The memory usage usually knows no limit and the better performance did not reach a point where certain workloads widely move to x32 and use it exclusively. In the meantime Debian introduced a patch to disable x32 by default (so it has to be enabled at boot time on the command line) because they are afraid of the increased attack surface. Fedora as far as I tell has X32 disabled (looking at 7.0-rc5 rpm in rawhide).

The last syscall for x86_64 is currently at 471. The first x32 starts at 512 which leaves 40 new syscalls in between. Without the x32 ABI, those syscalls could be used since x32 wouldn't be an option and therefore reserved.

Since there is practically no real use for x32, start removing it by removing the symbol first, not allowing to enable it. Should nothing happening within the next half year, lets remove code bits around August after the summer break."

So far no objections to removing x32 have been raised, just a nit pick about not recycling the system call numbers for it in the future.

So if all goes according to the proposal, 2026 could be the last year of the Linux x32 ABI.



[1] https://www.phoronix.com/search/x32

[2] https://www.phoronix.com/news/MTA4MzE

[3] https://lore.kernel.org/lkml/20260523093734.A3AR7reJ@linutronix.de/



If the meanings of "true" and "false" were switched, then this sentence
would not be false.