diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2025-03-21 15:14:19 +0000 |
---|---|---|
committer | Iain Sandoe <iain@sandoe.co.uk> | 2025-03-21 23:55:32 +0000 |
commit | 827a1471666de2fff8799c3bcd5f54ab24caba80 (patch) | |
tree | db3f26e1be84e662496f7bc3d76e0e6194591422 | |
parent | c264df142a850b47135c0c4639d3a539b23149c5 (diff) | |
download | gcc-827a1471666de2fff8799c3bcd5f54ab24caba80.zip gcc-827a1471666de2fff8799c3bcd5f54ab24caba80.tar.gz gcc-827a1471666de2fff8799c3bcd5f54ab24caba80.tar.bz2 |
cobol, driver: Handle targets without HAVE_LD_STATIC_DYNAMIC.
This fixes a typo where libraries were not added for targets without
HAVE_LD_STATIC_DYNAMIC.
It also adds the libraries in this case;
typically, a target without HAVE_LD_STATIC_DYNAMIC can take the
-static-libgcobol and use that to drive a spec substitution viz:
%{static-libgcobol:%:replace-outfile(-lgcobol libgcobol.a%s)}
which needs both the library and -static-libgcobol to be present
in the driver output.
gcc/cobol/ChangeLog:
* gcobolspec.cc (add_arg_lib): Fix typo.
(lang_specific_driver): Arrange to append both -lgcobol
and -static-libgcobol for targets without
HAVE_LD_STATIC_DYNAMIC.
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
-rw-r--r-- | gcc/cobol/gcobolspec.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/cobol/gcobolspec.cc b/gcc/cobol/gcobolspec.cc index 4ae8e2c..7de41fd 100644 --- a/gcc/cobol/gcobolspec.cc +++ b/gcc/cobol/gcobolspec.cc @@ -116,8 +116,8 @@ add_arg_lib(const char *library, bool force_static ATTRIBUTE_UNUSED) { append_option (OPT_Wl_, LD_STATIC_OPTION, 1); } - append_option (OPT_l, library, 1); #endif + append_option (OPT_l, library, 1); #ifdef HAVE_LD_STATIC_DYNAMIC if( force_static ) { @@ -339,10 +339,8 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, break; case OPT_static_libgcobol: -#ifdef HAVE_LD_STATIC_DYNAMIC static_libgcobol = true; need_libgcobol = true; -#endif break; case OPT_l: @@ -548,7 +546,11 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, break; case OPT_static_libgcobol: - // Don't pass this one on to cobol1 +#if !defined (HAVE_LD_STATIC_DYNAMIC) + // Allow the target to use spec substitution. + append_arg(decoded_options[i]); +#endif + // Else don't pass this one on to cobol1 break; ////#ifdef __x86_64__ |