[gcc r11-9144] Darwin, D: Fix bootstrap when target does not support -Bstatic/dynamic.

Iain D Sandoe iains@gcc.gnu.org
Wed Oct 13 13:27:35 GMT 2021


https://gcc.gnu.org/g:28f91cc71be921bc12e283b6aa576b8aef0fe335

commit r11-9144-g28f91cc71be921bc12e283b6aa576b8aef0fe335
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Tue Oct 5 19:54:30 2021 +0100

    Darwin, D: Fix bootstrap when target does not support -Bstatic/dynamic.
    
    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.
    
    Signed-off-by: Iain Sandoe <iain@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.
    
    (cherry picked from commit e24760533b62bb7068e63eb8da49dbca2837d38d)

Diff:
---
 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;


More information about the Gcc-cvs mailing list