[pushed] Darwin, D: Fix bootstrap when target does not support -Bstatic/dynamic.
Commit Message
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 <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.
---
gcc/d/d-spec.cc | 6 ++++++
1 file changed, 6 insertions(+)
Comments
> On 05/10/2021 21:57 Iain Sandoe <iains.gcc@gmail.com> wrote:
>
>
> 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
Thanks, it will apply cleanly on the other branches, so feel free to backport.
Iain.
@@ -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;