forked from OSchip/llvm-project
[Driver] MinGW: Remove custom linker detection
This is a re-apply of rL313082 which was reverted in rL313088 In rL289668 the ability to specify the default linker at compile time was added but because the MinGW driver used custom detection we could not take advantage of this new CMAKE flag CLANG_DEFAULT_LINKER. rL289668 added no test cases and the mingw driver was either overlooked or purposefully skipped because it has some custom linker tests Removing them here because they are covered by the generic case. Reviewers: rnk Differntial Revision: https://reviews.llvm.org/D37727 llvm-svn: 317397
This commit is contained in:
parent
8c7e8cce99
commit
db5b34ce30
|
@ -107,14 +107,6 @@ void tools::MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
// handled somewhere else.
|
||||
Args.ClaimAllArgs(options::OPT_w);
|
||||
|
||||
StringRef LinkerName = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "ld");
|
||||
if (LinkerName.equals_lower("lld")) {
|
||||
CmdArgs.push_back("-flavor");
|
||||
CmdArgs.push_back("gnu");
|
||||
} else if (!LinkerName.equals_lower("ld")) {
|
||||
D.Diag(diag::err_drv_unsupported_linker) << LinkerName;
|
||||
}
|
||||
|
||||
if (!D.SysRoot.empty())
|
||||
CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot));
|
||||
|
||||
|
@ -244,7 +236,7 @@ void tools::MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
if (Args.hasArg(options::OPT_static))
|
||||
CmdArgs.push_back("--end-group");
|
||||
else if (!LinkerName.equals_lower("lld"))
|
||||
else
|
||||
AddLibGCC(Args, CmdArgs);
|
||||
}
|
||||
|
||||
|
@ -255,7 +247,7 @@ void tools::MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o")));
|
||||
}
|
||||
}
|
||||
const char *Exec = Args.MakeArgString(TC.GetProgramPath(LinkerName.data()));
|
||||
const char *Exec = Args.MakeArgString(TC.GetLinkerPath());
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
// RUN: %clang -### -target i686-pc-windows-gnu --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_LD_32 %s
|
||||
// CHECK_LD_32: ld{{(.exe)?}}"
|
||||
// CHECK_LD_32: "i386pe"
|
||||
// CHECK_LD_32-NOT: "-flavor" "gnu"
|
||||
|
||||
// RUN: %clang -### -target i686-pc-windows-gnu --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s -fuse-ld=lld 2>&1 | FileCheck -check-prefix=CHECK_LLD_32 %s
|
||||
// CHECK_LLD_32-NOT: invalid linker name in argument
|
||||
// CHECK_LLD_32: lld{{(.exe)?}}" "-flavor" "gnu"
|
||||
// CHECK_LLD_32: "i386pe"
|
||||
|
||||
// RUN: %clang -### -target x86_64-pc-windows-gnu --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s -fuse-ld=lld 2>&1 | FileCheck -check-prefix=CHECK_LLD_64 %s
|
||||
// CHECK_LLD_64-NOT: invalid linker name in argument
|
||||
// CHECK_LLD_64: lld{{(.exe)?}}" "-flavor" "gnu"
|
||||
// CHECK_LLD_64: "i386pep"
|
||||
|
||||
// RUN: %clang -### -target arm-pc-windows-gnu --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s -fuse-ld=lld 2>&1 | FileCheck -check-prefix=CHECK_LLD_ARM %s
|
||||
// CHECK_LLD_ARM-NOT: invalid linker name in argument
|
||||
// CHECK_LLD_ARM: lld{{(.exe)?}}" "-flavor" "gnu"
|
||||
// CHECK_LLD_ARM: "thumb2pe"
|
Loading…
Reference in New Issue