Linux developers are once again considering the removal of the Linux x32 ABI.

Not to be confused with the i386 ABI, the Linux x32 ABI is the little adopted model of using 32-bit integers, long, and pointers on Intel/AMD CPUs but making use of the larger set of CPU registers and other benefits of x86_64. Linux x32 came too late and hasn’t seen much industry interest or adoption. With Linux x86_64 going comfortably, Linux kernel developers have been retiring the x32 ABI.

Sebastian Andrzej Siewior has been leading the efforts this year for proposing the x32 ABI retirement. With the end of 2026 approaching and Linux 7.3 or 7.4 being this year’s LTS kernel version, the topic of retiring x32 has once again reignited on the Linux kernel mailing list.

start removing x32

The Linutronix engineer sent out a new set of patches today to begin removing the x32 ABI. Sebastian argued in the patch to initially block x32 behind the “BROKEN” Kconfig option:

"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 syscall range >512 used by x32 can not be reused because on earlier kernels (before v5.4 with x32 enabled, see commit 6365b842aae4 ("x86/syscalls: Split the x32 syscalls into their own table") it is not obvious if the syscall is for x86-64 and not implemented or meant for x32.

What can be removed are the special compat cases due to different alignment.

Since there is practically no real use for x32, start removing it by marking the symbol as BROKEN so it is not possible to enable by default. It will remain around in the last LTS kernel of this year and then it will be removed."

We’ll see if the patches begin to land initially marking x32 as “BROKEN” and then eventual removal, following the declaration of the Linux 2026 LTS kernel version.