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
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-binutils