Author: phosek Date: Mon Oct 23 14:31:05 2017 New Revision: 316379 URL: http://llvm.org/viewvc/llvm-project?rev=316379&view=rev Log: [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 Modified: cfe/trunk/lib/Driver/ToolChains/Fuchsia.cpp cfe/trunk/lib/Driver/ToolChains/Fuchsia.h cfe/trunk/test/Driver/fuchsia.c cfe/trunk/test/Driver/fuchsia.cpp Modified: cfe/trunk/lib/Driver/ToolChains/Fuchsia.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Fuchsia.cpp?rev=316379&r1=316378&r2=316379&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Fuchsia.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Fuchsia.cpp Mon Oct 23 14:31:05 2017 @@ -44,10 +44,8 @@ void fuchsia::Linker::ConstructJob(Compi 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"); } Modified: cfe/trunk/lib/Driver/ToolChains/Fuchsia.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Fuchsia.h?rev=316379&r1=316378&r2=316379&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Fuchsia.h (original) +++ cfe/trunk/lib/Driver/ToolChains/Fuchsia.h Mon Oct 23 14:31:05 2017 @@ -82,7 +82,7 @@ public: llvm::opt::ArgStringList &CmdArgs) const override; const char *getDefaultLinker() const override { - return "lld"; + return "ld.lld"; } protected: Modified: cfe/trunk/test/Driver/fuchsia.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fuchsia.c?rev=316379&r1=316378&r2=316379&view=diff ============================================================================== --- cfe/trunk/test/Driver/fuchsia.c (original) +++ cfe/trunk/test/Driver/fuchsia.c Mon Oct 23 14:31:05 2017 @@ -1,16 +1,15 @@ // RUN: %clang %s -### -no-canonical-prefixes --target=x86_64-unknown-fuchsia \ -// RUN: --sysroot=%S/platform -fuse-ld=ld 2>&1 \ +// RUN: --sysroot=%S/platform 2>&1 \ // RUN: | FileCheck -check-prefixes=CHECK,CHECK-X86_64 %s // RUN: %clang %s -### -no-canonical-prefixes --target=aarch64-unknown-fuchsia \ -// RUN: --sysroot=%S/platform -fuse-ld=ld 2>&1 \ +// RUN: --sysroot=%S/platform 2>&1 \ // RUN: | FileCheck -check-prefixes=CHECK,CHECK-AARCH64 %s // CHECK: {{.*}}clang{{.*}}" "-cc1" // CHECK: "-munwind-tables" // CHECK: "-fuse-init-array" // CHECK: "-isysroot" "[[SYSROOT:[^"]+]]" // CHECK: "-internal-externc-isystem" "[[SYSROOT]]{{/|\\\\}}include" -// CHECK: {{.*}}lld{{.*}}" "-flavor" "gnu" -// CHECK: "-z" "rodynamic" +// CHECK: {{.*}}ld.lld{{.*}}" "-z" "rodynamic" // CHECK: "--sysroot=[[SYSROOT]]" // CHECK: "-pie" // CHECK: "--build-id" Modified: cfe/trunk/test/Driver/fuchsia.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fuchsia.cpp?rev=316379&r1=316378&r2=316379&view=diff ============================================================================== --- cfe/trunk/test/Driver/fuchsia.cpp (original) +++ cfe/trunk/test/Driver/fuchsia.cpp Mon Oct 23 14:31:05 2017 @@ -1,13 +1,12 @@ // RUN: %clangxx %s -### -no-canonical-prefixes --target=x86_64-unknown-fuchsia \ -// RUN: --sysroot=%S/platform 2>&1 -fuse-ld=ld | FileCheck %s +// RUN: --sysroot=%S/platform 2>&1 | FileCheck %s // CHECK: {{.*}}clang{{.*}}" "-cc1" // CHECK: "-triple" "x86_64-fuchsia" // CHECK: "-fuse-init-array" // CHECK: "-isysroot" "[[SYSROOT:[^"]+]]" // CHECK: "-internal-isystem" "{{.*[/\\]}}x86_64-fuchsia{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1" // CHECK: "-internal-externc-isystem" "[[SYSROOT]]{{/|\\\\}}include" -// CHECK: {{.*}}lld{{.*}}" "-flavor" "gnu" -// CHECK: "-z" "rodynamic" +// CHECK: {{.*}}ld.lld{{.*}}" "-z" "rodynamic" // CHECK: "--sysroot=[[SYSROOT]]" // CHECK: "-pie" // CHECK: "--build-id" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits