[Bug target/45053] libgcc_s link command misses crtsavgpr_s and crtresgpr_s for powerpc
amodra at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Feb 7 08:37:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45053
Alan Modra <amodra at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |amodra at gmail dot com
AssignedTo|unassigned at gcc dot |amodra at gmail dot com
|gnu.org |
--- Comment #12 from Alan Modra <amodra at gmail dot com> 2013-02-07 08:36:45 UTC ---
Some of the claims made in various comments are wrong, at least for current
gcc-4.7 svn rev 195829. Even the subject is wrong. libgcc_s.so *is* linked
with the crtsav/res objects. They are contained in libgcc.a, and libgcc.a is
used when linking libgcc_s.so. I have verified that libgcc_s.so built with -Os
due to --enable-target-optspace does need various _savegpr* and _restgpr*
functions.
Comment #4 shows the real problem nicely. Notice that the reference to
_savegpr_31 comes from crtend.o which the penultimate object on the linker
command line, *after* libgcc.a. So if no other object linked needs the
out-of-line register save functions they won't be extracted from libgcc.a.
$ nm crtbegin.o | grep gpr
U _restgpr_29_x
$ nm crtend.o | grep gpr
U _restgpr_31_x
U _savegpr_31
More information about the Gcc-bugs
mailing list