x32 ABI
The x32 ABI is an
Details
Though the x32 ABI limits the program to a
Feature | i386 ABI | x32 ABI | x86-64 ABI |
---|---|---|---|
Pointers | 4 bytes | 8 bytes | |
Max. memory per process | 4 GiB | 128 TiB | |
Integer registers | 6 (PIC) | 15 | |
FP registers | 8 | 16 | |
64-bit arithmetic
|
No | Yes | |
Floating-point arithmetic
|
x87 | SSE | |
Calling convention | Memory | Registers | |
PIC prologue | 2–3 instructions | None |
History
Running a userspace that consists mostly of programs compiled in
Several people had discussed the benefits of an x86-64 ABI with 32-bit pointers in the years since the
That same day, Linus Torvalds replied with a concern that the use of 32-bit time values in the x32 ABI could cause problems in the future.[11][12] This is because the use of 32-bit time values would cause the time values to overflow in the year 2038.[11][12] Following this request, the developers of the x32 ABI changed the time values to 64-bit.[13]
A presentation at the
The x32 ABI was merged into the Linux kernel for the 3.4 release with support being added to the
In December 2018 there was discussion as to whether to deprecate the x32 ABI, which has not happened as of April 2023.[15]
Adoption
Linux distribution | More information |
---|---|
Debian | X32 Port |
Gentoo | Multilib via abi_x86_x32 use-flags
|
Yocto Project | X32 ABI |
T2 SDE | x86-64 |
References
- ^ a b Thorsten Leemhuis (2011-09-13). "Kernel Log: x32 ABI gets around 64-bit drawbacks". www.h-online.com. Archived from the original on 28 October 2011. Retrieved 2011-11-01.
- ^ a b c "x32 - a native 32-bit ABI for x86-64". linuxplumbersconf.org. Retrieved 2012-06-12.
- ^ a b c "x32-abi". Google Sites. Retrieved 2011-11-01.
- ^ "181.mcf SPEC CPU2000 Benchmark Description File". Standard Performance Evaluation Corporation. 1999-10-14. Retrieved 2011-11-01.
- ^ H. J. Lu; H. Peter Anvin; Milind Girkar (September 2011). "X32 - A Native 32bit ABI For X86-64".
- .
- ^ "Applications that Profit from the Underrated x32-ABI". www.sempria.de. Retrieved 22 May 2023.
- ^ Tony Bourke (2004-01-22). "Are 64-bit Binaries Really Slower than 32-bit Binaries?". Retrieved 2014-03-25.
- ^ Donald Knuth (February 2008). "Recent News: A Flame About 64-bit Pointers". Retrieved 15 May 2012.
- ^ H. Peter Anvin (27 August 2011). "RFD: x32 ABI system call numbers". Retrieved 15 May 2012.
- ^ a b Jonathan Corbet (2011-08-29). "The x32 system call ABI". LWN.net. Retrieved 2011-11-01.
- ^ a b Linus Torvalds (2011-08-26). "Re: RFD: x32 ABI system call numbers". LWN.net. Retrieved 2016-02-26.
- ^ Lu, H. J. (2011-11-24). "X32 project status update". libc-alpha (Mailing list). Retrieved 2019-10-17.
- ^ O'Donell, Carlos (30 June 2012). "The GNU C Library version 2.16 is now available". libc-alpha (Mailing list). Retrieved 27 December 2016.
- ^ "Can we drop upstream Linux x32 support?". LKML. Retrieved 13 March 2019.