====== X32 ====== [[wp>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 ===== * [[https://sites.google.com/site/x32abi/|x32 ABI Development Website]] * [[https://bugs.launchpad.net/rpm/+bug/913618|rpm5 tracker]] * [[https://wiki.debian.org/X32Port|Debian x32 Port]] * [[http://debian-x32.org/|unofficial updates to Debian's x32 port]] ===== Status ===== As of [[http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-February/024276.html|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 [[package>autoconf-archive]] ([[http://git.pld-linux.org/?p=packages/gearmand.git;a=commitdiff;h=89dddf3fd7c509f7d948f69ba58eb5a6dbed94d1|boost-program example]]) ===== Packages ===== * [[package>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 * [[package>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 * [[package>php]]: 5.5, and 5.6 built, older versions need backporting * [[package>mono]]: [[http://git.pld-linux.org/?p=packages/mono.git;a=commitdiff;h=291876902669ea51a9f5bd0eb6c11376e7db6666|partial support for x32, builds but crashes on run]] * [[package>ghc]]: unsupported * [[package>erlang]]: [[http://buildlogs.pld-linux.org//index.php?dist=th&arch=x32&ok=0&name=erlang&id=e14b5ab8-27d6-4dd0-ab75-03d7b92d92f3&action=tail|not supported]] ===== 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