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

Reply via email to