Plan for future x32 ABI support

Registered by Colin Watson

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.

Blueprint information

Status:
Not started
Approver:
Steve Langasek
Priority:
Low
Drafter:
Adam Conrad
Direction:
Approved
Assignee:
Matthias Klose
Definition:
Approved
Series goal:
Accepted for raring
Implementation:
Unknown
Milestone target:
milestone icon ubuntu-13.04

Related branches

Sprints

Whiteboard

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

Work items for ubuntu-13.04-month-2:
[apw] turn back on x32 support in the kernel (ie CONFIG_X86_X32=y): DONE
[colin-king] measure power/performance with i386 userspace and amd64 kernel: DONE

Work items for ubuntu-13.04-month-4:
[apw] engage Debian kernel team about their plans: POSTPONED
[apw] engage with -security on the ramifications: POSTPONED

Work items:
[doko] wait for Debian to do an x32 port: INPROGRESS
[adconrad] finish the multilib bootstrap in Debian experimental: DONE
[colin-king] measure power/performance with x32 userspace and amd64 kernel (see http://kernel.ubuntu.com/~cking/x32/Raring-benchmarks): DONE
[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: INPROGRESS