From e24760533b62bb7068e63eb8da49dbca2837d38d Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Tue, 5 Oct 2021 19:54:30 +0100 Subject: [PATCH] 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 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 5adc662c6f25..b12d28f10478 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.47.2