aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2022-07-19 15:42:17 +0200
committerThomas Schwinge <tschwinge@baylibre.com>2025-03-26 14:20:20 +0100
commit3b36e96b575b493a21510c877b273608113108ed (patch)
tree90aa85184da86d3e019b45835a7c69959999db79 /gcc
parentbf1aca4a2a5b68ac731d2a0c966f335e7bc0df2c (diff)
downloadgcc-3b36e96b575b493a21510c877b273608113108ed.zip
gcc-3b36e96b575b493a21510c877b273608113108ed.tar.gz
gcc-3b36e96b575b493a21510c877b273608113108ed.tar.bz2
driver: Forward '-lstdc++' to offloading compilation [PR101544]
..., so that users don't manually need to specify '-foffload-options=-lstdc++' in addition to '-lstdc++' (specified manually, or implicitly by the driver). Do like commit 4bcb46b3ade1796c5a57b294f5cca25f00671cac "driver: Forward '-lgfortran', '-lm' to offloading compilation". PR driver/101544 gcc/ * gcc.cc (driver_handle_option): Forward host '-lstdc++' to offloading compilation. * config/gcn/mkoffload.cc (main): Adjust. * config/nvptx/mkoffload.cc (main): Likewise. libgomp/ * testsuite/libgomp.c++/pr101544-1-O0.C: Remove '-foffload-options=-lstdc++'. * testsuite/libgomp.c++/pr101544-1.C: Likewise. * testsuite/libgomp.oacc-c++/pr101544-1.C: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/gcn/mkoffload.cc3
-rw-r--r--gcc/config/nvptx/mkoffload.cc3
-rw-r--r--gcc/gcc.cc3
3 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/gcn/mkoffload.cc b/gcc/config/gcn/mkoffload.cc
index fbd68a6..f5b89c9 100644
--- a/gcc/config/gcn/mkoffload.cc
+++ b/gcc/config/gcn/mkoffload.cc
@@ -1070,7 +1070,8 @@ main (int argc, char **argv)
#undef STR
/* Translate host into offloading libraries. */
else if (strcmp (argv[i], "-l_GCC_gfortran") == 0
- || strcmp (argv[i], "-l_GCC_m") == 0)
+ || strcmp (argv[i], "-l_GCC_m") == 0
+ || strcmp (argv[i], "-l_GCC_stdc++") == 0)
{
/* Elide '_GCC_'. */
size_t i_dst = strlen ("-l");
diff --git a/gcc/config/nvptx/mkoffload.cc b/gcc/config/nvptx/mkoffload.cc
index 958e16f..bdfe7f5 100644
--- a/gcc/config/nvptx/mkoffload.cc
+++ b/gcc/config/nvptx/mkoffload.cc
@@ -741,7 +741,8 @@ main (int argc, char **argv)
dumppfx = argv[++i];
/* Translate host into offloading libraries. */
else if (strcmp (argv[i], "-l_GCC_gfortran") == 0
- || strcmp (argv[i], "-l_GCC_m") == 0)
+ || strcmp (argv[i], "-l_GCC_m") == 0
+ || strcmp (argv[i], "-l_GCC_stdc++") == 0)
{
/* Elide '_GCC_'. */
size_t i_dst = strlen ("-l");
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index c7b2aa6..3edd21f 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -4154,7 +4154,8 @@ forward_offload_option (size_t opt_index, const char *arg, bool validated)
are injected by default in offloading compilation, and therefore not
forwarded here. */
/* GCC libraries. */
- if (/* '-lgfortran' */ strcmp (arg, "gfortran") == 0 )
+ if (/* '-lgfortran' */ strcmp (arg, "gfortran") == 0
+ || /* '-lstdc++' */ strcmp (arg, "stdc++") == 0)
save_switch (concat ("-foffload-options=-l_GCC_", arg, NULL),
0, NULL, validated, true);
/* Other libraries. */