All prelink ifunc* tests fail on powerpc64 when doing make check-cycle
(in the pass with -Wl,-z,nocombreloc).  The failures are in all ld.so modes, ldd
-d -r ./ifunc1lib1.so, LD_TRACE_PRELINKING=1 ./ld64.so.1 ./ifunc1lib1.so or
when just doing ./ld64.so.1 ./ifunc1lib1.so, even without prelinking being done
on the library or any other involved object.
The problem is that powerpc64 dl-machine.h assumes that if map == sym_map, then
relative relocations for the current library have been already processed, but
that isn't necessarily the case with -Wl,-z,nocombreloc.

Not sure what can be done about this though, perhaps linker could enforce some
ordering of .rela.* sections which would make sure the needed relative
relocations are processed before the IRELATIVE/JMP_IREL ones.  Looking at
ifunc1lib1.so it would be perhaps enough to force .rela.opd to be emitted as the
first .rela.* section.

-- 
           Summary: -Wl,-z,nocombreloc doesn't work with IRELATIVE
                    relocations
           Product: binutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
        AssignedTo: unassigned at sources dot redhat dot com
        ReportedBy: jakub at redhat dot com
                CC: amodra at bigpond dot net dot au,bug-binutils at gnu dot
                    org
GCC target triplet: powerpc64-linux


http://sourceware.org/bugzilla/show_bug.cgi?id=11012

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to