diff options
| author | Petr Hosek <phosek@chromium.org> | 2018-11-04 22:38:47 +0000 |
|---|---|---|
| committer | Petr Hosek <phosek@chromium.org> | 2018-11-04 22:38:47 +0000 |
| commit | 6c652b7f1167654f87f4a31b3922d1d0d24eb258 (patch) | |
| tree | 21cf6843fd8947714180b839538a09216ad5a230 | |
| parent | 6d3c7136892d6c0072ff2d10490ef57b44095df6 (diff) | |
| download | bcm5719-llvm-6c652b7f1167654f87f4a31b3922d1d0d24eb258.tar.gz bcm5719-llvm-6c652b7f1167654f87f4a31b3922d1d0d24eb258.zip | |
[Driver] Use -Bstatic/dynamic for libc++ on Fuchsia
-static relies on lld's behavior, but -Bstatic/dynamic is supported
across all linkers.
Differential Revision: https://reviews.llvm.org/D54082
llvm-svn: 346107
| -rw-r--r-- | clang/lib/Driver/ToolChains/Fuchsia.cpp | 4 | ||||
| -rw-r--r-- | clang/test/Driver/fuchsia.cpp | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp b/clang/lib/Driver/ToolChains/Fuchsia.cpp index f788f91d5d8..cfda9b4f3ae 100644 --- a/clang/lib/Driver/ToolChains/Fuchsia.cpp +++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp @@ -125,8 +125,10 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("--push-state"); CmdArgs.push_back("--as-needed"); if (OnlyLibstdcxxStatic) - CmdArgs.push_back("-static"); + CmdArgs.push_back("-Bstatic"); ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); + if (OnlyLibstdcxxStatic) + CmdArgs.push_back("-Bdynamic"); CmdArgs.push_back("-lm"); CmdArgs.push_back("--pop-state"); } diff --git a/clang/test/Driver/fuchsia.cpp b/clang/test/Driver/fuchsia.cpp index 2d422ba0147..2c80ad07037 100644 --- a/clang/test/Driver/fuchsia.cpp +++ b/clang/test/Driver/fuchsia.cpp @@ -37,8 +37,9 @@ // RUN: | FileCheck %s -check-prefix=CHECK-STATIC // CHECK-STATIC: "--push-state" // CHECK-STATIC: "--as-needed" -// CHECK-STATIC: "-static" +// CHECK-STATIC: "-Bstatic" // CHECK-STATIC: "-lc++" +// CHECK-STATIC: "-Bdynamic" // CHECK-STATIC: "-lm" // CHECK-STATIC: "--pop-state" // CHECK-STATIC: "-lc" |

