From: Iain Sandoe Date: Tue, 5 Oct 2021 18:54:30 +0000 (+0100) Subject: Darwin, D: Fix bootstrap when target does not support -Bstatic/dynamic. X-Git-Tag: releases/gcc-11.3.0~749 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=28f91cc71be921bc12e283b6aa576b8aef0fe335;p=thirdparty%2Fgcc.git 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. (cherry picked from commit e24760533b62bb7068e63eb8da49dbca2837d38d) --- 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;