https://sourceware.org/bugzilla/show_bug.cgi?id=23317
Bug ID: 23317 Summary: Load address invalid for n64 MIPS -msym32 executables Product: binutils Version: unspecified Status: NEW Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: ma...@linux-mips.org Depends on: 22966 Target Milestone: --- Target: mips*-*-* Detaching this issue from PR ld/22966 so that it can be closed. As noted in PR ld/22966 and previously discussed linking an n64 `-msym32'/`-mplt' executable is currently not properly supported due to a 64-bit mapping address being used by the linker by default with n64 links. A solution has been discussed before: <https://sourceware.org/ml/binutils/2012-11/msg00225.html>, however it will require an ABI update and some effort to implement and is likely not going to happen soon. To summarise: ABI annotation will be required for tools to be able to tell regular and `-msym32' n64 relocatable objects apart. If all objects are regular, then the default load address remains the current value, that is 0x120000000. If any object is `-msym32' or if a PLT is used, then a value that fits in the 32-bit range is used instead, such as 0x10000000 currently used for n32. This is to satisfy LUI/LD, etc. 32-bit absolute address load sequences, used with `-msym32' in `-mplt' and also, as a GNU extension, in SVR4 executables. PIE and DSO binaries are unaffected as they necessarily need to use the GOT for all address calculations Referenced Bugs: https://sourceware.org/bugzilla/show_bug.cgi?id=22966 [Bug 22966] n64 MIPS: -mplt -msym32 is resulting in assertion ld.orig: BFD 2.29.1 assertion fail binutils-2.29.1 /bfd/elfxx-mips.c:11234 -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils