Linux 3.4 Kernel Has x32 ABI Support

Written by Michael Larabel in Linux Kernel on 5 April 2012 at 10:49 AM EDT. 37 Comments
LINUX KERNEL
The pull happened last week prior to the Linux 3.4-rc1 release, but one of the other interesting changes in the Linux 3.4 kernel that hasn't been talked about much is the x32 support.

Back in February I talked about the x32 support being called in for kernel review, which Ingo Molnar sent in during the 3.4 merge window and he was successful in getting Linus to pull the tree.

Linux x32 is a new, native 32-bit ABI for x86_64 on Linux. Applications not needing 64-bit address space can now optionally target this 32-bit ABI to take advantage of the smaller 32-bit memory foot-print while still being able to take advantage of x86_64 CPU instructions and other functionality.

On the GCC side the x32 compiler support has already been merged and now the Linux kernel support is in place. There's also changes needed for x32 with GNU binutils and glibc.

On the kernel side, per the Git pull message, is the x32 binary format and execution mode for x86. This provides 32-bit data-space binaries using 64-bit instructions and 64-bit kernel syscalls.

Since the 3.4-rc1 release, on the GCC mailing list there's now an RFC message concerning the x32 TLS specification.

It will be a while until the x32 support is fully ready and found throughout new Linux distribution releases, but this 32-bit ABI is finally materializing in the real world.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week