Table of Contents
X32
X32 ABI (x32 application binary interface) is an application binary interface project and one of the interfaces of the Linux kernel. It that allows programs to take advantage of the benefits of x86-64 (larger number of CPU registers, better floating-point performance, faster position-independent code shared libraries, function parameters passed via registers, faster syscall instruction) while using 32-bit pointers and thus avoiding the overhead of 64-bit pointers.
The x32 ABI was merged into the Linux kernel for the 3.4 release with support being added to the GNU C Library in version 2.16.
References
Status
As of 23 February 2015 x32 is initialized in pld builders and packages can be built. You need rpm 5.4.15-12 at least to build x32 guest (chroot install).
Fixes
Here's some random fixes that you may find useful.
If autoconf based project can't find libraries, try updating m4
macros from autoconf-archive (boost-program example)
Packages
- valgrind: no support as of 2015-02-02: http://sourceforge.net/p/valgrind/mailman/message/33306917/, besides can't be compiled now at all due glibc version block < 2.21
- llvm: llvm 3.5.x does not build on x32, llvm 3.6.0 almost does, needs only makefile tweaks, see also http://www.phoronix.com/scan.php?page=news_item&px=MTczMjg
- php: 5.5, and 5.6 built, older versions need backporting
- ghc: unsupported
Vserver
vserver NAME build --context NUMBER -m poldek -n NAME --machine x32 -- -d pld-th
Note:
rm /etc/vserver/NAME/uts/machine as uname -m is supposed to return x86_64