This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


This patch fixes linking of applications compiled with -mabi=64 -msym32.

The -msym32 GCC options forces MIPS backend to emit 32-bit symbols even when compiling for 64-bit ABI, which is most useful for building applications with PLTs to call shared library functions (PLTs are currently supported only for 32-bit symbols for MIPS).  Certain applications get a significant performance edge from using PLTs, and such applications should be compiled with "-mabi=64 -mplt -msym32".

Compiling with the above options works just fine until linker tries to put the .text section above 32-bit address space at TEXT_START_ADDR="0x120000000".  This patch sets TEXT_START_ADDR to 0x10000000 (which is same as for N32 ABI) when compiling with -msym32 GCC option.

I will post the corresponding GCC patch that tells the linker to use new emulations shortly.

Tested by building complete MIPS64 toolchain (including glibc) with -msym32.

OK to apply?

--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics


Attachment: binutils-msym32.ChangeLog
Description: Binary data

Attachment: binutils-msym32.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]