libgcc_s : What links to it and why?

Ian Lance Taylor iant@google.com
Thu Nov 2 16:27:00 GMT 2006


Jeff Blaine <jblaine@mitre.org> writes:

> I didn't get an answer to my previous long post about the
> problem I am having, so I figured I would try asking
> more direct questions:
> 
> What, in GCC, makes the determination to link in -lgcc?

-lgcc is always linked in.

I assume you are asking: what decides whether to link it statically or
dynamically?  That is controlled by the -static-libgcc and
-shared-libgcc options, q.v.

The g++ driver program always adds -shared-libgcc.  So if you link
with g++, you will normally get a shared libgcc (unless you use the
-static-libgcc option, of course).

> Why am I unable to get around shared linking of -lgcc?
> I have tried both of the following and neither works
> if I have a libgcc_s.so
> 
>      a) In 'specs', specify "-Bstatic -lgcc -Bdynamic" for
>         the 'libgcc:' directive.
> 
>      b) In 'specs', specify "/my/static/libgcc.a" for the
>         'libgcc:' directive.

That is odd.  It sounds like your specs file is not being read.  I'm
not sure why not.

Ian



More information about the Gcc-help mailing list