This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Is -static a link-only switch?


"Gary Funck" <gary@intrepid.com> writes:

> Does the -static switch play any role during compilation, or is it
> a link-only switch?

It is a link-only switch.

>  A quick review of gcc.c, indicates that -static
> may play a role on some targets:
> 
> /* %{static:} simply prevents an error message if the target machine
>    doesn't handle -static.  */

That comment is above LINK_COMMAND_SPEC, which is how gcc invokes the
linker.  It means that if the target does not provide any handling for
-static in the target specific LINK_SPEC, gcc will simply ignore
-static.  It doesn't affect code-generation, only how the linker is
invoked.

> I can think of target OS's that might define a different ABI for
> procedure calls for programs compiled with -static asserted, than
> when compiled for a dynamic linking environment, but can't quite
> tell if in fact -static has any effect during compilation.

In fact many targets compile code differently depending upon whether
the code is to be put into a shared library or not, but this is
controlled via options like -fpic, not -static.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]