diff options
author | Petr Hosek <phosek@chromium.org> | 2017-10-23 21:31:05 +0000 |
---|---|---|
committer | Petr Hosek <phosek@chromium.org> | 2017-10-23 21:31:05 +0000 |
commit | 3e199ecdadf7b546054c5a5820d1678f1e83c821 (patch) | |
tree | b3a40cca349f037e6e8c43a28ea06bb4eee094f9 /clang/lib/Driver | |
parent | 089dac7be115f8c822f83c8b6e0633854c9e9c80 (diff) | |
download | bcm5719-llvm-3e199ecdadf7b546054c5a5820d1678f1e83c821.tar.gz bcm5719-llvm-3e199ecdadf7b546054c5a5820d1678f1e83c821.zip |
[Driver] Use ld.lld directly for Fuchsia rather than passing flavor
Passing a flavor to LLD requires command line argument, but if these
are being passed through a response file, this will fail because LLD
needs to know which driver to use before processing the response file.
Use ld.lld directly instead to avoid this issue.
Differential Revision: https://reviews.llvm.org/D39176
llvm-svn: 316379
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r-- | clang/lib/Driver/ToolChains/Fuchsia.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains/Fuchsia.h | 2 |
2 files changed, 3 insertions, 5 deletions
diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp b/clang/lib/Driver/ToolChains/Fuchsia.cpp index 5cea62b7508..10ee7b7829b 100644 --- a/clang/lib/Driver/ToolChains/Fuchsia.cpp +++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp @@ -44,10 +44,8 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA, Args.ClaimAllArgs(options::OPT_w); const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath()); - if (llvm::sys::path::stem(Exec).equals_lower("lld")) { - CmdArgs.push_back("-flavor"); - CmdArgs.push_back("gnu"); - + if (llvm::sys::path::filename(Exec).equals_lower("ld.lld") || + llvm::sys::path::stem(Exec).equals_lower("ld.lld")) { CmdArgs.push_back("-z"); CmdArgs.push_back("rodynamic"); } diff --git a/clang/lib/Driver/ToolChains/Fuchsia.h b/clang/lib/Driver/ToolChains/Fuchsia.h index dab44a2b49b..6d825fb8179 100644 --- a/clang/lib/Driver/ToolChains/Fuchsia.h +++ b/clang/lib/Driver/ToolChains/Fuchsia.h @@ -82,7 +82,7 @@ public: llvm::opt::ArgStringList &CmdArgs) const override; const char *getDefaultLinker() const override { - return "lld"; + return "ld.lld"; } protected: |