Re: [PATCH v4 2/2] x86: Start removing X86_X32_ABI
From: H. Peter Anvin
Date: Sat Oct 10 2026 - 02:59:50 EST
On October 8, 2026 11:07:43 AM GMT+02:00, Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote:
>From: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx>
>
>From: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
>
>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.
>
>Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
>Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
>---
> arch/x86/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>index 15fd9ec5ecacb..21a6863e14e7a 100644
>--- a/arch/x86/Kconfig
>+++ b/arch/x86/Kconfig
>@@ -3104,7 +3104,7 @@ config IA32_EMULATION_DEFAULT_DISABLED
>
> config X86_X32_ABI
> bool "x32 ABI for 64-bit mode"
>- depends on X86_64
>+ depends on X86_64 && BROKEN
> # llvm-objcopy does not convert x86_64 .note.gnu.property or
> # compressed debug sections to x86_x32 properly:
> # https://github.com/ClangBuiltLinux/linux/issues/514
>
I want to make one change to this.
The commit message states this as a fait accompli, but what it should say is:
** If you have a legitimate use case for x32, this is your last chance to speak up. Otherwise it will... **