(Please note this is a copy & paste from Donald E. Knuth's homepage: http://www-cs-faculty.stanford.edu/~uno/news.html - Given who he is, I think the issue should receive a bit of love)
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. -- Summary: A Flame About 64-bit Pointers Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pgquiles at elpauer dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34764