]> granicus.if.org Git - clang/commitdiff
[Driver] Use -Bstatic/dynamic for libc++ on Fuchsia
authorPetr Hosek <phosek@chromium.org>
Sun, 4 Nov 2018 22:38:47 +0000 (22:38 +0000)
committerPetr Hosek <phosek@chromium.org>
Sun, 4 Nov 2018 22:38:47 +0000 (22:38 +0000)
-static relies on lld's behavior, but -Bstatic/dynamic is supported
across all linkers.

Differential Revision: https://reviews.llvm.org/D54082

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@346107 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains/Fuchsia.cpp
test/Driver/fuchsia.cpp

index f788f91d5d83b81d57988f194b22ee4b5e0e3669..cfda9b4f3aefc091578035c5d417b9050289fe19 100644 (file)
@@ -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");
       }
index 2d422ba0147ccf631aab9bfce54310b3d8a9ee23..2c80ad070378c47445461c8bd0e491cdd54ff15a 100644 (file)
@@ -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"