Skip to content

Commit 96917d7

Browse files
committedJun 23, 2018
[Fuchsia] Enable static libc++, libc++abi, libunwind
This is needed for building Fuchsia drivers. Differential Revision: https://reviews.llvm.org/D48208 llvm-svn: 335410
1 parent fd7c9ab commit 96917d7

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed
 

Diff for: ‎clang/cmake/caches/Fuchsia-stage2.cmake

-3
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,9 @@ foreach(target x86_64;aarch64)
7777
set(RUNTIMES_${target}-fuchsia_CMAKE_SYSROOT ${FUCHSIA_${target}_SYSROOT} CACHE PATH "")
7878
set(RUNTIMES_${target}-fuchsia_LLVM_ENABLE_ASSERTIONS ${FUCHSIA_RUNTIMES_ENABLE_ASSERTIONS} CACHE BOOL "")
7979
set(RUNTIMES_${target}-fuchsia_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
80-
set(RUNTIMES_${target}-fuchsia_LIBUNWIND_ENABLE_STATIC OFF CACHE BOOL "")
8180
set(RUNTIMES_${target}-fuchsia_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
8281
set(RUNTIMES_${target}-fuchsia_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
83-
set(RUNTIMES_${target}-fuchsia_LIBCXXABI_ENABLE_STATIC OFF CACHE BOOL "")
8482
set(RUNTIMES_${target}-fuchsia_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
85-
set(RUNTIMES_${target}-fuchsia_LIBCXX_ENABLE_STATIC OFF CACHE BOOL "")
8683
set(RUNTIMES_${target}-fuchsia_SANITIZER_USE_COMPILER_RT ON CACHE BOOL "")
8784

8885
set(RUNTIMES_${target}-fuchsia-asan_LLVM_USE_SANITIZER Address CACHE STRING "")

Diff for: ‎clang/lib/Driver/ToolChains/Fuchsia.cpp

+8-1
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,15 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA,
115115
CmdArgs.push_back("-Bdynamic");
116116

117117
if (D.CCCIsCXX()) {
118-
if (ToolChain.ShouldLinkCXXStdlib(Args))
118+
if (ToolChain.ShouldLinkCXXStdlib(Args)) {
119+
bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) &&
120+
!Args.hasArg(options::OPT_static);
121+
if (OnlyLibstdcxxStatic)
122+
CmdArgs.push_back("-Bstatic");
119123
ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
124+
if (OnlyLibstdcxxStatic)
125+
CmdArgs.push_back("-Bdynamic");
126+
}
120127
CmdArgs.push_back("-lm");
121128
}
122129

Diff for: ‎clang/test/Driver/fuchsia.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727

2828
// RUN: %clangxx %s -### --target=x86_64-unknown-fuchsia -static-libstdc++ 2>&1 \
2929
// RUN: | FileCheck %s -check-prefix=CHECK-STATIC
30-
// CHECK-STATIC-NOT: "-Bstatic"
30+
// CHECK-STATIC: "-Bstatic"
3131
// CHECK-STATIC: "-lc++"
32-
// CHECK-STATIC-NOT: "-Bdynamic"
32+
// CHECK-STATIC: "-Bdynamic"
3333
// CHECK-STATIC: "-lm"
3434
// CHECK-STATIC: "-lc"

0 commit comments

Comments
 (0)
Please sign in to comment.