bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/23317] New: Load address invalid for n64 MIPS -msym32 executable


From: address@hidden
Subject: [Bug ld/23317] New: Load address invalid for n64 MIPS -msym32 executables
Date: Wed, 20 Jun 2018 12:55:38 +0000

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: address@hidden
        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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]