[Bug target/47558] 163267 breaks exception traceback in xplor-nih

iains at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 1 18:51:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558

--- Comment #24 from Iain Sandoe <iains at gcc dot gnu.org> 2011-02-01 17:49:34 UTC ---
(In reply to comment #23)
> (In reply to comment #22)
> > My only comment is that the likely users of FSF gcc are also likely builders of
> > ported unix code. So gcc 4.6 needs a big fat warning that existing ported unix
> > code will have to be vetted for the use of flat-namespace and the linkages
> > manually adjusted. Otherwise will users of gcc 4.6 will unknowingly miscompile
> > lots of existing unix code. Since we don't link this way in gcc 4.5, I don't
> > see why we can't just revert the behavior and postpone this change until gcc
> > 4.7 when it can be more carefully done.
> 
> I am concerned that we push the balloon in one place and it pops out in
> another.
> We have made a lot of effort to avoid libSystem linkage before the ext to avoid
> other reported issues with unwinding and Java IIRC.  I am not too keen simply
> to go round in circles (we need proper fixes, of course).
> 
> This might be a reasonable compromise until the proper fixes are forthcoming:

well a couple of hiccups ... this seems OK on Darwin9 --- could you try D10?


Index: gcc/config/darwin.h
===================================================================
--- gcc/config/darwin.h    (revision 169490)
+++ gcc/config/darwin.h    (working copy)
@@ -327,12 +331,16 @@ extern GTY(()) int darwin_ms_struct;
    "%{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 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+       %{Zflat_namespace:                           \
+         %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_s.10.5);       \
+        :%:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)}\
        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)       \
        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)       \
        -lgcc ;                                   \
       :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
-       %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+       %{Zflat_namespace:                           \
+         %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_s.10.5);       \
+        :%:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)}\
        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)       \
        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)       \
        -lgcc }"



More information about the Gcc-bugs mailing list