A Flame About 64-bit Pointers

Bug #182409 reported by Pau Garcia Quiles
2
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://www-cs-faculty.stanford.edu/~uno/news.html - Given who he is, I think the issue should receive a bit of love. I also reported the bug to gcc, it's bug #34764)

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.

Revision history for this message
Pau Garcia Quiles (pgquiles) wrote :

Unrelated to Ubuntu, it's a gcc issue

Changed in gcc-defaults:
status: New → Invalid
Revision history for this message
Colin Watson (cjwatson) wrote :

As you say, this is a GCC issue.

-mlong32 is only advertised as an option specific to the MIPS architecture. It is not advertised as being available for any other architecture (and of course doing so would be an ABI break).

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.