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.

Reply via email to