Re: [PATCH, testsuite] Don't run SREC, IHEX and TEKHEX tests for MIPS N64.

Luis Machado
2013-07-03T20:54:12Z

On 07/03/2013 05:35 PM, Maciej W. Rozycki wrote:
> 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?

I don't see a segfault with Ttext, but the text addresses are still
based on 0x120000000.

Luis