[I know this is a duplicate of 43810, but the information there is
        partly misleading, so I decided to file a new report.]
        If GCC is configured for powerpc with --enable-target-optspace,
        libgcc_s objects get compiled with -Os, and this causes libgcc_s
        to contain undefined symbols _savegpr_* and _restgpr_*.
        This is probably due to this commit:
        http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151729
        (The use of those symbols might also depend on --with-float=soft,
        I didn't test with a different float option.)
        Those symbols _savegpr_* and _restgpr_* are defined in
        crtsavgpr_s.o and crtresgpr_s.o, respectively.  But those objects
        are not linked into libgcc_s.
        The problem also occurs with gcc-4.5.1-RC-20100722 and with
        gcc-4.4.4, if the patch for pr41175 is applied.

Environment:
System: Linux sonnet 2.6.24-28-generic #1 SMP Fri Jun 18 14:18:04 UTC 2010
x86_64 GNU/Linux


host: x86_64-unknown-linux-gnu
build: x86_64-unknown-linux-gnu
target: powerpc-none-linux-gnu
configured with: /work2/build/cross-own/src/gcc-4.5.0/configure
--target=powerpc-none-linux-gnu --prefix=/work2/build/cross-own/ppc-own-tmp
--disable-threads --disable-nls --disable-multilib --disable-libgomp
--disable-libssp --disable-libmudflap --enable-decimal-float=no
--disable-libssp --enable-shared --enable-languages=c --enable-checking=yes
--enable-symvers=gnu --enable-target-optspace --with-float=soft
--with-local-prefix=/work2/build/cross-own/ppc-own/sys-root
--with-build-sysroot=/work2/build/cross-own/ppc-own/sys-root
--with-sysroot=/work2/build/cross-own/ppc-own/sys-root

How-To-Repeat:
        configure for powerpc and --enable-target-optspace (and possibly
--with-float=soft)


------- Comment #1 from dv at vollmann dot ch  2010-07-24 12:42 -------
Fix:
        The workaround is not to use --enable-target-optspace.
        The correct fix would be to link libgcc_s against crtsavgpr_s.o
        and crtresgpr_s.o, but I don't know the build system of GCC well
        enough to figure out how to do that.


-- 
           Summary: libgcc_s link command misses crtsavgpr_s and crtresgpr_s
                    for powerpc
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dv at vollmann dot ch
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: powerpc-none-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45053

Reply via email to