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: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: rdsandif...@googlemail.com 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.