On Wed, 3 Jul 2013, Luis Machado wrote:
if [istarget "alpha*-*-*"] then {
# SREC etc cannot handle 64-bit addresses. Force the test
# program into the low 31 bits of the address space.
lappend options "additional_flags=-Wl,-taso"
}
(For MIPS N64, if you wanted, I guess you could do similarly
to Alpha, and rebuild with:
lappend options "ldflags=-Wl,-Tdata=0x600000"
to force use of low addresses.)
[...]
As for MIPS, attempting to force the use of low addresses, just like alpha,
seems to do more than what the tools expect at the moment, and i get a SIGSEGV
in the dynamic loader.
Hmm, while (unlike Alpha's -taso option) there is no way to force an
entire n64 MIPS process into the 31-bit address space, the dynamic
executable itself should work just fine mapped low. However the default
linker script relies on the start address of the text (0x120000000, unless
overridden) rather than data segment to get things right and moving the
linker's output address pointer backwards in the middle of the binary
being linker may yield strange results. Can you try (or have you tried)
-Ttext=... instead?