Last active
February 27, 2025 16:54
-
-
Save ychaouche/4da87cb591431ba57ae24e562d375239 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/lib/ is for 32-bit apps | |
/libx32/ is for the 32x ABI | |
In the new "x32" ABI x86_64-linux-gnux32, | |
inspired by SGI n32 environment, | |
registers are 64 bits, | |
but pointers, integers and longs are only 32 bits, | |
saving a lot of memory in pointer-heavy workflows. | |
It also ensures all the other 64-bit only processor features are available, | |
resulting in to about 30% reduction in memory usage | |
and up to about 40% increase in speed. [2][5] | |
It is designed to run on 64bit host | |
(amd64/x86_64 CPUs) | |
which gives it full access to all x64 goodies: | |
o native x64 registers and math | |
o more registers | |
o SSE2/3/4, AVX1/2/... | |
o Full 4Gb address space on 64bit host [3] | |
It is part of Linux 3.4, | |
released on the 20th May 2012 [4] | |
The idea is to combine the smaller memory and cache footprint from 32-bit data types | |
with the larger register set of x86_64. [5] | |
Requirements: | |
- kernel support (3.4 and above), | |
- distro support (see below), | |
- libc support (2.11 or above), | |
- GCC 4.8 and above (improved address size prefix support). | |
When booting a kernel with the support, | |
you must use syscall.x32=y option [5] | |
[1] https://stackoverflow.com/a/851229/212044 | |
[2] https://stackoverflow.com/a/36347228/212044 | |
[3] https://stackoverflow.com/a/36347144/212044 | |
[4] https://stackoverflow.com/q/7635013/212044 | |
[5] https://stackoverflow.com/a/32663236/212044 | |
[6] https://unix.stackexchange.com/a/539354/22046 | |
[7] https://www.quora.com/Systems-Programming/What-is-the-exact-difference-between-dynamic-loading-and-dynamic-linking/answer/Jeff-Darcy | |
[8] https://unix.stackexchange.com/a/476783/22046 | |
[9] https://stackoverflow.com/a/76490135/212044 | |
[10] https://stackoverflow.com/a/75630806/212044 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment