mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-06 10:57:35 +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)
|
// 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
|
// and older bfd versions stripping llvm.used symbols (e.g., ModuleInfo
|
||||||
// refs) with --gc-sections (see #2870).
|
// refs) with --gc-sections (see #2870).
|
||||||
|
// Can be overridden by `-linker=` (explicitly empty).
|
||||||
|
if (opts::linker.getNumOccurrences() == 0)
|
||||||
args.push_back("-fuse-ld=gold");
|
args.push_back("-fuse-ld=gold");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,11 @@
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
namespace opts {
|
namespace opts {
|
||||||
llvm::cl::opt<std::string>
|
llvm::cl::opt<std::string> linker(
|
||||||
linker("linker", llvm::cl::ZeroOrMore, llvm::cl::desc("Linker to use"),
|
"linker", llvm::cl::ZeroOrMore,
|
||||||
llvm::cl::value_desc("lld-link|lld|gold|bfd|..."),
|
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));
|
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