A Flame About 64-bit Pointers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gcc-defaults (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
(Please note this is a copy & paste from Donald E. Knuth's homepage:
http://
It is absolutely idiotic to have 64-bit pointers when I compile a program that uses less than 4 gigabytes of RAM. When such pointer values appear inside a struct, they not only waste half the memory, they effectively throw away half of the cache.
The gcc manpage advertises an option "-mlong32" that presumably does what I want. Namely, it should compile code for my x86-64 architecture, taking advantage of the extra registers etc., but it should also know that my program is going to live inside a 32-bit virtual address space.
Unfortunately, the gcc I got with Ubuntu 7.10 says that -mlong32 is an unknown option. Probably that happens because programs compiled with this convention will need to be loaded with a special version of libc.
Please, somebody, make that possible.
Unrelated to Ubuntu, it's a gcc issue