Skip to content

Commit

Permalink
Avoid unsupported LLD options
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D70919
  • Loading branch information
SidManning committed Dec 20, 2019
1 parent 4024d49 commit d567b0b
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
11 changes: 8 additions & 3 deletions clang/lib/Driver/ToolChains/Hexagon.cpp
Expand Up @@ -209,7 +209,11 @@ constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
bool IncStartFiles = !Args.hasArg(options::OPT_nostartfiles);
bool IncDefLibs = !Args.hasArg(options::OPT_nodefaultlibs);
bool UseG0 = false;
const char *Exec = Args.MakeArgString(HTC.GetLinkerPath());
bool UseLLD = (llvm::sys::path::filename(Exec).equals_lower("ld.lld") ||
llvm::sys::path::stem(Exec).equals_lower("ld.lld"));
bool UseShared = IsShared && !IsStatic;
StringRef CpuVer = toolchains::HexagonToolChain::GetTargetCPUVersion(Args);

//----------------------------------------------------------------------------
// Silence warnings for various options
Expand All @@ -232,9 +236,10 @@ constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
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");
Expand Down
Empty file.
22 changes: 22 additions & 0 deletions clang/test/Driver/hexagon-toolchain-elf.c
Expand Up @@ -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=

0 comments on commit d567b0b

Please sign in to comment.