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