[PATCH][MIPS] Add linker emulation for N64 ABI with forced 32-bit symbols
Maxim Kuvyrkov
maxim@codesourcery.com
Thu Nov 15 21:48:00 GMT 2012
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: binutils-msym32.ChangeLog
Type: application/octet-stream
Size: 285 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20121115/e16df7d5/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: binutils-msym32.patch
Type: application/octet-stream
Size: 7910 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20121115/e16df7d5/attachment-0001.obj>
More information about the Binutils
mailing list