Nice. Dispatching based on argv[0] is more common and probably a recommended way now, so this patch aligned with that.
On Mon, Oct 23, 2017 at 2:31 PM, Petr Hosek via cfe-commits < cfe-commits@lists.llvm.org> wrote: > 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 >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits