https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67417

            Bug ID: 67417
           Summary: powerpc64 bootstrap with -mcmodel=small results in
                    linker error
           Product: gcc
           Version: 5.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: amodra at gmail dot com
  Target Milestone: ---

To test recent powerpc64 linker changes I attempted to bootstrap gcc-5 with
-mcmodel=small, and ran into

/home/amodra/gnu/powerpc64-linux/bin/ld: libbackend.a(sel-sched-ir.o): In
function `loop_iterator::loop_iterator(loop**, unsigned int)':
sel-sched-ir.c:(.text+0x116f0): call to `loop_iterator::loop_iterator(loop**,
unsigned int)' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)

On investigating, I see there really isn't a nop, and the call is to a group
with a different toc pointer.  This despite the destination being defined in
the same file.  However, it is weak and there's another definition.

nm -o gcc/*.o | grep _ZN13loop_iteratorC1EPP4loopj
gcc/ipa-inline-analysis.o:0000000000000420 W _ZN13loop_iteratorC1EPP4loopj
gcc/sel-sched-ir.o:00000000000013e0 W _ZN13loop_iteratorC1EPP4loopj

Reply via email to