[PATCH][MIPS] Add linker emulation for N64 ABI with forced 32-bit symbols

Richard Sandiford rdsandiford@googlemail.com
Thu Nov 15 22:39:00 GMT 2012

<Paul_Koning@Dell.com> writes:
> On Nov 15, 2012, at 5:08 PM, Richard Sandiford wrote:
>> ...
>> Huh.  I'm very much against the original change to the n64 TEXT_START_ADDR.
>> See this previous discussion on the topic:
>>    http://sourceware.org/ml/binutils/2008-06/msg00285.html
>> The justification for changing TEXT_START_ADDR from a 32-bit value to a
>> larger value was that it would show users if their code was non-portable,
>> because anything that assumed 32-bit addresses would now fault.  But that
>> seems to me like the tools lecturing to the user.  As I said in that thread,
>> I think users who want to smoke out such portability problems (by making
>> sure that the lower 4GB aren't mapped) should be the ones who need to do
>> something special.
>> I think we should simply revert to a 32-bit TEXT_START_ADDR for all
>> n64 emulations.  This time I'm even in a position to approve it :-)
> Isn't this an OS question more than an OS-independent tools question?
> Also, I disagree with your description as "lecturing".  The interesting
> case isn't the one where a correctly working program that happens to
> misuse 32 bit addresses is turned into a broken one by the current start
> address rule.
> The interesting case is where a program executes without immediately
> crashing, but because it uses 32-bit addresses it does some wrong things
> -- writing wrong data into a database, or things like that.  So this
> isn't a case of lecturing, it's a security improvement.

People who want that can still ask for it, just as people who want
address santisation, stack protection, PIEs, etc., can ask for
those features.

x86_64, PPC64 and s390x all use 32-bit start addresses by default.
I think the security implications would be the same across all
4 architectures.


More information about the Binutils mailing list