> I would like to revise this patch to be more conservative (only applying to > Darwin 8 and 9).
This is OK, thanks (and Happy New Year!) > > On 24 Dec 2022, at 19:00, Iain Sandoe via Gcc-patches > > <gcc-patches@gcc.gnu.org> wrote: > > > > Tested on i686, x86-64 darwin, x86_64-linux (with a 32b multilib). > > OK for trunk? > > Iain > > revised: > > [PATCH] Ada,Darwin: Do not link libgcc statically on Darwin 8 and 9 > [PR108202]. > > Normally, GCC executables are built with -static-libstdc++ -static-libgcc > on Darwin. This is fine in most cases, because GCC executables typically > do not use exceptions. However gnat1 does use exceptions and also pulls > in system libraries that are linked against the installed shared libgcc > which contains the system unwinder. This means that gnat1 effectively has > two unwinder instances (which does not work reliably since the unwinders > have global state). > > A recent change in the initialization of FDEs has made this a hard error > now on Darwin versions (8 and 9) with libgcc installed in /usr/lib (gnat1 > now hangs when an exception is thrown). > > The solution is to link libgcc dynamically, picking up the installed > system version. To do this we strip -static-libgcc from the link flags. > > PR ada/108202 > > gcc/ada/ChangeLog: > > * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS): > Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and > -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered > out for other hosts).