Danny Backx wrote:
> I'm not sure I understand what the cygwin.h code would do :

  "If nothing is specified on the command line, or if -static or
-static-libgcc is present, link against the static libgcc.  If -shared-libgcc
is explicitly specified, or if building a DLL (-shared) and not explicitly
specifying "-static-libgcc", link against the shared one.

> #define SHARED_LIBGCC_SPEC " \
>  %{static|static-libgcc:-lgcc -lgcc_eh} \
>  %{!static: \
>    %{!static-libgcc: \
>      %{!shared: \
>        %{!shared-libgcc:-lgcc -lgcc_eh} \
>        %{shared-libgcc:-lgcc_s -lgcc} \
>       } \
>      %{shared:-lgcc_s -lgcc} \
>     } \
>   } "
> 
> Is a normal developer supposed to use -shared-libgcc ?

  At the moment, it's not the default setting upstream, although it is in the
cygwin distro compiler.  We plan on throwing the switch to make it default
once we've got glitches worked out with the language runtime DLLs.  It is
however enabled when building a DLL, since that makes it very likely you are
going to have to worry about exceptions crossing image boundaries.

> The DLL sample in test/shared runs these commands, and works as it
> should :

  Note that the equation is libgcc_s = libgcc + libgcc_eh (approximately - in
fact there are a couple of leftover bits in the static one that don't belong
in the DLL and so that's why we still add '-lgcc' after '-lgcc_s', to fill out
any references to them).  Your current LIBGCC_SPEC definition in mingw32ce.h
just has "-lgcc", so what happens is that you're always linking statically,
and the shared libgcc DLL will never be used.  The reason the test works is
because it doesn't use any EH functions I'd guess, so the stuff in the static
libgcc.a is enough for it to link.  You could check whether it has any imports
from the libgcc_s DLL or not to confirm that.

    cheers,
      DaveK

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to