On Dec 10, 2008, at 10:23 AM, IainS wrote:
 I wonder what a good long-term solution would be?

You can try something like:

#define REAL_LIBGCC_SPEC \ "%{static-libgcc|static: -lgcc_eh - lgcc; \ shared-libgcc|fexceptions|fgnu- runtime: \ %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s. 10.4) \ %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_s. 10.5) \ -lgcc_eh - lgcc; \ :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s. 10.4) \ %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_s. 10.5) \
       -lgcc_eh -lgcc}"

in config/darwin.h. I'm thinking that most of the symbols should then come from the shared libraries as applicable, and newer routines in gcc_eh (like the thread emulation package, which has nothing to do with eh, right?) can be found. Another possibility, would be to split out the tls emulation package from gcc_eh. We avoid gcc_eh, so as to not pull in any routines that would shear with those in the system libgcc_s.

Reply via email to