The x32 ABI ( http://sites.google.com/site/x32abi/ ) provides a compromise between IA32 and x86-64: it has a 32-bit pointer size, which is more memory-efficient and may often be faster, but has 64-bit registers and a larger register file. Support for it is gradually trickling into various relevant upstreams (kernel, glibc, gcc, etc.). Although the pieces are unlikely to be in place in time for 12.10, we should think ahead for how we might deploy this in Ubuntu. Overall everybody thinks this ought to be better but it is very hard to know it will be right. Likely we should need to test this. = current status = * The dpkg architecture has already been added in dpkg 1.16.3 and is x32. * The triplet is x86_64-linux-gnux32. * The multi-arch tuple should (and does) match the gnu triplet. * Multilib support in raring in gcc-4.7 and glibc 2.16 * Ditto in Debian experimental soon * No plans in raring to continue with x32 userspace changes * Was disabled in quantal: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1041883 = work items = [apw] turn back on x32 support in the kernel (ie CONFIG_X86_X32=y): INPROGRESS [apw] engage Debian kernel team about their plans: TODO [apw] engage with -security on the ramifications: TODO [doko] wait for Debian to do an x32 port: INPROGRESS [adconrad] finish the multilib bootstrap in Debian experimental: TODO [colin-king] measure power/performance with i386 userspace and amd64 kernel: DONE [colin-king] measure power/performance with x32 userspace and amd64 kernel: TODO [doko] update binutils to a version from the trunk: DONE [doko] get gcc backports into 4.7 if necessary: DONE [adconrad] get x32 backports into glibc, or update glibc to the next release, assuming 2.16 has all the patches we need: DONE [adconrad] Investigate better lp-buildd queueing strategies that would allow us to share amd64/x32/i386/lpia buildds in a single pool, so we don't have to add yet another dedicated set of buildds: TODO [adconrad] Backport x32 support to precise and lucid-cat dpkg versions, so Soyuz can deal with it if/when we do the port: TODO