mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-06 02:45:25 +03:00
Give user possibility to avoid passing -fuse-ld to cc with --linker=
. (#3382)
This commit is contained in:
parent
336da83945
commit
1aa55f7879
3 changed files with 18 additions and 5 deletions
|
@ -577,6 +577,8 @@ void ArgsBuilder::addLinker() {
|
|||
// Default to ld.gold on Linux due to ld.bfd issues with ThinLTO (see #2278)
|
||||
// and older bfd versions stripping llvm.used symbols (e.g., ModuleInfo
|
||||
// refs) with --gc-sections (see #2870).
|
||||
// Can be overridden by `-linker=` (explicitly empty).
|
||||
if (opts::linker.getNumOccurrences() == 0)
|
||||
args.push_back("-fuse-ld=gold");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,9 +27,11 @@
|
|||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
namespace opts {
|
||||
llvm::cl::opt<std::string>
|
||||
linker("linker", llvm::cl::ZeroOrMore, llvm::cl::desc("Linker to use"),
|
||||
llvm::cl::opt<std::string> linker(
|
||||
"linker", llvm::cl::ZeroOrMore,
|
||||
llvm::cl::value_desc("lld-link|lld|gold|bfd|..."),
|
||||
llvm::cl::desc("Set the linker to use. When explicitly set to '' "
|
||||
"(nothing), prevents LDC from passing `-fuse-ld` to `cc`."),
|
||||
llvm::cl::cat(opts::linkingCategory));
|
||||
}
|
||||
|
||||
|
|
9
tests/linking/linker_empty.d
Normal file
9
tests/linking/linker_empty.d
Normal file
|
@ -0,0 +1,9 @@
|
|||
// Check that the user can override LDC passing `-fuse-ld` to `cc`.
|
||||
|
||||
// REQUIRES: target_X86
|
||||
|
||||
// RUN: %ldc --gcc=echo --mtriple=x86_64-linux --linker= %s | FileCheck %s
|
||||
|
||||
// CHECK-NOT: -fuse-ld
|
||||
// CHECK: linker_empty
|
||||
// CHECK-NOT: -fuse-ld
|
Loading…
Add table
Add a link
Reference in a new issue