http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47683
Summary: g++.dg/tree-prof/partition[12].C FAIL on IRIX
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Host: mips-sgi-irix[56]*
Target: mips-sgi-irix[56]*
Build: mips-sgi-irix[56]*
Both g++.dg/tree-prof/partition[12].C tests fail to link on IRIX 5 and 6 with
the native linker:
FAIL: g++.dg/tree-prof/partition1.C compilation, -g -fprofile-use
output is:
ld32: WARNING 84 : /usr/lib/../lib32/libm.so is not used for resolving any
symbol.
ld32: Relocation 30 in section .rela.text in file /var/tmp//cc6I0h7y.o.
ld32: FATAL 23 : Relocation entry has bad type
ld32: INFO 152: Output file removed because of error.
collect2: ld returned 4 exit status
Checking with elfdump -r, I find that relocation 30 in .rela.text is
.rela.text:
Offset Symndx Type Addend
[...]
[ 30] 0x200 .text.unlikely R_MIPS_PC16 36
Obviously, SGI ld cannot handle that relocation type. The R_MIPS prefix is an
indication that while elfdump does know the type, the system tools cannot do
anything with them.
I'll try to disable generating that type in gas if targetting IRIX and see if
I can bootstrap with such a gas.