(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