Linux x32 Is Made Easier With Ubuntu 13.04
The Linux x32 implementation is a native 32-bit ABI for Intel/AMD x86_64 systems for software that doesn't need 64-bit pointers but can benefit from features assumed by 64-bit x86 processors. There's been mainline Linux kernel support, GDB debugging support, glibc support, and GCC support.
There's been experiments with Debian x32 and Gentoo x32, but no tier-one Linux distribution has been shipping any official x32 images. The ultimate fate of x32 really isn't known since many are doing just fine using native x86_64 software and this x32 ABI has been slow to come with AMD64 being around now for one decade.
After delivering earlier today the Ubuntu 13.04 x86 vs. x86_64 benchmarks some Phoronix readers have asked about x32 benchmarks. While there isn't any pure x32 release of Ubuntu 13.04, trying out this ABI is much easier.
There's Linux kernel support for x32 and a number of new packages are present in the Ubuntu "Raring" repository for those wishing to migrate to x32. There's x32 packages for libc6 (libc6-x32 and libc6-dev-x32) and GCC packages (libx32gcc1, libx32gcc-4.7-dev, libx32gfortran3, libx32gomp1, etc). These are new x32 support packages not previously found in older Ubuntu release repositories. Aside from the libc6 and GCC support there's various x32 libraries too like GNU readline, libstdc++, compression library, and more.
Basically, the underlying packages to offer x32 support are packaged up and can optionally be installed with Ubuntu 13.04. Previously users could just fetch the sources and build the components themselves, but now it's easier.
With the packages installed, compiling for x32 involves passing the -mx32 flag to GCC. More detailed instructions on configuring a system for the Linux x32 ABI can be found from the Google Site.
In a separate article in the next few days I will work on setting up an Ubuntu x32 system to deliver some long-awaited performance benchmarks in this configuration.