Hi this has become more important since it seems I can no longer link a working gnat1 without it, thanks Iain
> On 4 Dec 2022, at 16:30, Iain Sandoe via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > This fixes a long-standing problem on Darwin where we cannot independently set > -static-libstdc++ because the flag gets stripped by the g++ driver. > > This patch is essentially the same as the one used for the 'D' driver and has > been in local use for some time. It has also been tested on Linux. > > OK for master? > backports? > thanks > Iain > > -- >8 -- > > The current implementation for swapping between the static and shared c++ > runtimes relies on the static linker supporting Bstatic/dynamic which is > not available for every target (Darwin's linker does not support this). > > Specs substitution (%s) is an alternative solution for this (which is what > Darwin uses for Fortran, D and Objective-C). However, specs substitution > requires that the '-static-libstdc++' be preserved in the driver's command > line. The patch here arranges for this to be done when the configuration > determines that linker support for Bstatic/dynamic is missing. > > Signed-off-by: Iain Sandoe <i...@sandoe.co.uk> > > gcc/cp/ChangeLog: > > * g++spec.cc (lang_specific_driver): Preserve -static-libstdc++ in > the driver command line for targets without -Bstatic/dynamic support > in their static linker. > --- > gcc/cp/g++spec.cc | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/gcc/cp/g++spec.cc b/gcc/cp/g++spec.cc > index 3d3b042dd56..f95d7965355 100644 > --- a/gcc/cp/g++spec.cc > +++ b/gcc/cp/g++spec.cc > @@ -234,7 +234,12 @@ lang_specific_driver (struct cl_decoded_option > **in_decoded_options, > > case OPT_static_libstdc__: > library = library >= 0 ? 2 : library; > +#ifdef HAVE_LD_STATIC_DYNAMIC > + /* Remove -static-libstdc++ from the command only if target supports > + LD_STATIC_DYNAMIC. When not supported, it is left in so that a > + back-end target can use outfile substitution. */ > args[i] |= SKIPOPT; > +#endif > break; > > case OPT_stdlib_: > -- > 2.37.1 (Apple Git-137.1) >