This fixes a bootstrap fail because saw_static_libcxx was unused for
targets without support for -Bstatic/dynamic.

The fix applied pushes the -static-libstdc++ back onto the command
line, which allows a target to substitute a static version of the
c++ standard library using specs.

tested on x86_64-darwin, pushed as bootstrap fix (it, or an alternate
will also be needed on open branches), thanks
Iain

Signed-off-by: Iain Sandoe <i...@sandoe.co.uk>

gcc/d/ChangeLog:

        * d-spec.cc (lang_specific_driver): Push the -static-libstdc++
        option back onto the command line for targets without support
        for -Bstatic/dynamic.
---
 gcc/d/d-spec.cc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gcc/d/d-spec.cc b/gcc/d/d-spec.cc
index 5adc662c6f2..b12d28f1047 100644
--- a/gcc/d/d-spec.cc
+++ b/gcc/d/d-spec.cc
@@ -468,6 +468,12 @@ lang_specific_driver (cl_decoded_option 
**in_decoded_options,
          generate_option (OPT_Wl_, LD_STATIC_OPTION, 1, CL_DRIVER,
                           &new_decoded_options[j++]);
        }
+#else
+      /* Push the -static-libstdc++ option back onto the command so that
+        a target without LD_STATIC_DYNAMIC can use outfile substitution.  */
+      if (saw_static_libcxx && !static_link)
+       generate_option (OPT_static_libstdc__, NULL, 1, CL_DRIVER,
+                        &new_decoded_options[j++]);
 #endif
       if (saw_libcxx)
        new_decoded_options[j++] = *saw_libcxx;
-- 
2.24.3 (Apple Git-128)

Reply via email to