r316379 - [Driver] Use ld.lld directly for Fuchsia rather than passing flavor
Rui Ueyama via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 23 14:37:45 PDT 2017
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 at 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 at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171023/c4319f12/attachment.html>
More information about the cfe-commits
mailing list