From: Petr Hosek Date: Sun, 4 Nov 2018 22:38:47 +0000 (+0000) Subject: [Driver] Use -Bstatic/dynamic for libc++ on Fuchsia X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e49c5834832d96f8b3b3f118ffbb97ca22a9c384;p=clang [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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@346107 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains/Fuchsia.cpp b/lib/Driver/ToolChains/Fuchsia.cpp index f788f91d5d..cfda9b4f3a 100644 --- a/lib/Driver/ToolChains/Fuchsia.cpp +++ b/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/test/Driver/fuchsia.cpp b/test/Driver/fuchsia.cpp index 2d422ba014..2c80ad0703 100644 --- a/test/Driver/fuchsia.cpp +++ b/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"