LIBGCC_SPEC
Matt Austern
austern@apple.com
Wed Feb 18 00:50:00 GMT 2004
On Feb 17, 2004, at 4:18 PM, Jim Wilson wrote:
> On Tue, 2004-02-17 at 15:46, Matt Austern wrote:
>> In the case of Darwin, the biggest problem is that -static and
>> -static-libgcc need to do completely different things.
>
> You still haven't explained what the problem is. You said the output
> needs to be different, but you did not say what the difference is, or
> why it needs to be different. If this has been explained in another
> thread, then just pointing to the other thread is fine. Otherwise,
> this
> is still too abstract.
I don't think it should be surprising that -static and -static-libgcc
need to do different things on some systems: the documented
behavior of the two options is almost unrelated. -static is the
opposite of -shared: it means not to produce a dynamic library.
-static-libgcc doesn't affect code generation, but just means to
use the .a version of libgcc instead of the .so version. It makes
no sense to combine -static with -shared-libgcc, but all three of
the other combinations make sense are potentially distinct.
On Darwin the default is for everything (including the .a version
of libgcc) to be compiled in a way that's appropriate for putting
in a dynamic library, so -static needs to link in a special version
of libgcc. It's a much more drastic option than -static-libgcc.
Again, I'd be surprised if Darwin was the only system where the
logic in the spec string created by init_gcc_spec is inappropriate.
To some extent this discussion has to be an abstract one, because
it's an abstract question: is there a proof that init_gcc_spec's
logic is appropriate on all systems for which libgcc might be
shared?
> Alternatively, offer a patch, and then we can see what changes you are
> suggesting, and then we might be able to offer useful comments.
I've already posted a patch to allow targets to override the default
version of LIBGCC_SPEC in a way that's immune to init_gcc_spec's
rewriting.
--Matt
More information about the Gcc
mailing list