diff options
-rw-r--r-- | cmake/caches/Fuchsia-stage2.cmake | 1 | ||||
-rw-r--r-- | lib/Driver/ToolChains/Clang.cpp | 10 | ||||
-rw-r--r-- | test/Driver/fuchsia.c | 5 |
3 files changed, 12 insertions, 4 deletions
diff --git a/cmake/caches/Fuchsia-stage2.cmake b/cmake/caches/Fuchsia-stage2.cmake index 0ecb50c98c..8366913606 100644 --- a/cmake/caches/Fuchsia-stage2.cmake +++ b/cmake/caches/Fuchsia-stage2.cmake @@ -133,6 +133,7 @@ set(LLVM_TOOLCHAIN_TOOLS llvm-cov llvm-cxxfilt llvm-dwarfdump + llvm-dwp llvm-lib llvm-nm llvm-objcopy diff --git a/lib/Driver/ToolChains/Clang.cpp b/lib/Driver/ToolChains/Clang.cpp index 4d2cb14a51..322a02d959 100644 --- a/lib/Driver/ToolChains/Clang.cpp +++ b/lib/Driver/ToolChains/Clang.cpp @@ -3047,8 +3047,8 @@ static void RenderDebugOptions(const ToolChain &TC, const Driver &D, // -gsplit-dwarf should turn on -g and enable the backend dwarf // splitting and extraction. - // FIXME: Currently only works on Linux. - if (T.isOSLinux()) { + // FIXME: Currently only works on Linux and Fuchsia. + if (T.isOSLinux() || T.isOSFuchsia()) { if (!SplitDWARFInlining) CmdArgs.push_back("-fno-split-dwarf-inlining"); @@ -3814,7 +3814,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // Add the split debug info name to the command lines here so we // can propagate it to the backend. - bool SplitDWARF = SplitDWARFArg && RawTriple.isOSLinux() && + bool SplitDWARF = SplitDWARFArg && + (RawTriple.isOSLinux() || RawTriple.isOSFuchsia()) && (isa<AssembleJobAction>(JA) || isa<CompileJobAction>(JA) || isa<BackendJobAction>(JA)); const char *SplitDWARFOut; @@ -5759,8 +5760,9 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-o"); CmdArgs.push_back(Output.getFilename()); + const llvm::Triple &T = getToolChain().getTriple(); if (Args.hasArg(options::OPT_gsplit_dwarf) && - getToolChain().getTriple().isOSLinux()) { + (T.isOSLinux() || T.isOSFuchsia())) { CmdArgs.push_back("-split-dwarf-file"); CmdArgs.push_back(SplitDebugName(Args, Input)); } diff --git a/test/Driver/fuchsia.c b/test/Driver/fuchsia.c index f4bf003994..b26ab0417e 100644 --- a/test/Driver/fuchsia.c +++ b/test/Driver/fuchsia.c @@ -149,3 +149,8 @@ // CHECK-THINLTO: "-plugin-opt=mcpu=x86-64" // CHECK-THINLTO: "-plugin-opt=thinlto" // CHECK-THINLTO: "-plugin-opt=jobs=8" + +// RUN: %clang %s -### --target=x86_64-fuchsia \ +// RUN: -gsplit-dwarf -c %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK-SPLIT-DWARF +// CHECK-SPLIT-DWARF: "-split-dwarf-file" "fuchsia.dwo" |