sidneym updated this revision to Diff 233687. sidneym added a comment. Herald added a project: LLVM.
make check for lld more generic. Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70919/new/ https://reviews.llvm.org/D70919 Files: clang/lib/Driver/ToolChains/Hexagon.cpp clang/test/Driver/hexagon-toolchain-elf.c Index: clang/test/Driver/hexagon-toolchain-elf.c =================================================================== --- clang/test/Driver/hexagon-toolchain-elf.c +++ clang/test/Driver/hexagon-toolchain-elf.c @@ -536,3 +536,25 @@ // RUN: | FileCheck -check-prefix=CHECK080 %s // CHECK080: "-cc1" // CHECK080: "-Wreturn-type" + +// ----------------------------------------------------------------------------- +// Default, not passing -fuse-ld +// ----------------------------------------------------------------------------- +// RUN: %clang -### -target hexagon-unknown-elf \ +// RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ +// RUN: -mcpu=hexagonv60 \ +// RUN: %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK081 %s +// CHECK081: "-march=hexagon" +// CHECK081: "-mcpu=hexagonv60" +// ----------------------------------------------------------------------------- +// Passing -fuse-ld=lld +// ----------------------------------------------------------------------------- +// RUN: %clang -### -target hexagon-unknown-elf \ +// RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ +// RUN: -mcpu=hexagonv60 \ +// RUN: -fuse-ld=lld \ +// RUN: %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK082 %s +// CHECK082-NOT: "-march=" +// CHECK082-NOT: "-mcpu=" Index: clang/lib/Driver/ToolChains/Hexagon.cpp =================================================================== --- clang/lib/Driver/ToolChains/Hexagon.cpp +++ clang/lib/Driver/ToolChains/Hexagon.cpp @@ -209,7 +209,9 @@ bool IncStartFiles = !Args.hasArg(options::OPT_nostartfiles); bool IncDefLibs = !Args.hasArg(options::OPT_nodefaultlibs); bool UseG0 = false; + bool UseLLD = Args.getLastArgValue(options::OPT_fuse_ld_EQ).contains_lower("lld"); bool UseShared = IsShared && !IsStatic; + StringRef CpuVer = toolchains::HexagonToolChain::GetTargetCPUVersion(Args); //---------------------------------------------------------------------------- // Silence warnings for various options @@ -232,9 +234,10 @@ for (const auto &Opt : HTC.ExtraOpts) CmdArgs.push_back(Opt.c_str()); - CmdArgs.push_back("-march=hexagon"); - StringRef CpuVer = toolchains::HexagonToolChain::GetTargetCPUVersion(Args); - CmdArgs.push_back(Args.MakeArgString("-mcpu=hexagon" + CpuVer)); + if (!UseLLD) { + CmdArgs.push_back("-march=hexagon"); + CmdArgs.push_back(Args.MakeArgString("-mcpu=hexagon" + CpuVer)); + } if (IsShared) { CmdArgs.push_back("-shared");
Index: clang/test/Driver/hexagon-toolchain-elf.c =================================================================== --- clang/test/Driver/hexagon-toolchain-elf.c +++ clang/test/Driver/hexagon-toolchain-elf.c @@ -536,3 +536,25 @@ // RUN: | FileCheck -check-prefix=CHECK080 %s // CHECK080: "-cc1" // CHECK080: "-Wreturn-type" + +// ----------------------------------------------------------------------------- +// Default, not passing -fuse-ld +// ----------------------------------------------------------------------------- +// RUN: %clang -### -target hexagon-unknown-elf \ +// RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ +// RUN: -mcpu=hexagonv60 \ +// RUN: %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK081 %s +// CHECK081: "-march=hexagon" +// CHECK081: "-mcpu=hexagonv60" +// ----------------------------------------------------------------------------- +// Passing -fuse-ld=lld +// ----------------------------------------------------------------------------- +// RUN: %clang -### -target hexagon-unknown-elf \ +// RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ +// RUN: -mcpu=hexagonv60 \ +// RUN: -fuse-ld=lld \ +// RUN: %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK082 %s +// CHECK082-NOT: "-march=" +// CHECK082-NOT: "-mcpu=" Index: clang/lib/Driver/ToolChains/Hexagon.cpp =================================================================== --- clang/lib/Driver/ToolChains/Hexagon.cpp +++ clang/lib/Driver/ToolChains/Hexagon.cpp @@ -209,7 +209,9 @@ bool IncStartFiles = !Args.hasArg(options::OPT_nostartfiles); bool IncDefLibs = !Args.hasArg(options::OPT_nodefaultlibs); bool UseG0 = false; + bool UseLLD = Args.getLastArgValue(options::OPT_fuse_ld_EQ).contains_lower("lld"); bool UseShared = IsShared && !IsStatic; + StringRef CpuVer = toolchains::HexagonToolChain::GetTargetCPUVersion(Args); //---------------------------------------------------------------------------- // Silence warnings for various options @@ -232,9 +234,10 @@ for (const auto &Opt : HTC.ExtraOpts) CmdArgs.push_back(Opt.c_str()); - CmdArgs.push_back("-march=hexagon"); - StringRef CpuVer = toolchains::HexagonToolChain::GetTargetCPUVersion(Args); - CmdArgs.push_back(Args.MakeArgString("-mcpu=hexagon" + CpuVer)); + if (!UseLLD) { + CmdArgs.push_back("-march=hexagon"); + CmdArgs.push_back(Args.MakeArgString("-mcpu=hexagon" + CpuVer)); + } if (IsShared) { CmdArgs.push_back("-shared");
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits