aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2020-08-02 18:34:29 +0000
committerDimitry Andric <dim@FreeBSD.org>2021-12-22 09:58:14 +0000
commit184e7a37179eb1693fc3d40feaf7da9062d0791c (patch)
tree97c8b75b4478c37d54585c722b7c2b20f769832f
parentad448b507431a6bc98c94416e8f5d8151e3750fd (diff)
downloadsrc-184e7a37179eb1693fc3d40feaf7da9062d0791c.tar.gz
src-184e7a37179eb1693fc3d40feaf7da9062d0791c.zip
Reapply r327026 (partially):
Merge lld trunk r321017 to contrib/llvm/tools/lld. (Note that in this merge, I foolishly combined upstream changes with this local change. But only this ifdef part is really needed, as we always default to ELF link mode.) (cherry picked from commit 59948e95d8deadafca3acd659b6dfc78b708f117)
-rw-r--r--contrib/llvm-project/lld/tools/lld/lld.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/contrib/llvm-project/lld/tools/lld/lld.cpp b/contrib/llvm-project/lld/tools/lld/lld.cpp
index 8a8f8d04bbda..c1a117e9cc3e 100644
--- a/contrib/llvm-project/lld/tools/lld/lld.cpp
+++ b/contrib/llvm-project/lld/tools/lld/lld.cpp
@@ -142,6 +142,9 @@ int main(int argc, const char **argv) {
InitLLVM x(argc, argv);
std::vector<const char *> args(argv, argv + argc);
+#ifdef __FreeBSD__
+ return !elf::link(args, canExitEarly(), llvm::outs(), llvm::errs());
+#else
switch (parseFlavor(args)) {
case Gnu:
if (isPETarget(args))
@@ -160,4 +163,5 @@ int main(int argc, const char **argv) {
"Invoke ld.lld (Unix), ld64.lld (macOS), lld-link (Windows), wasm-ld"
" (WebAssembly) instead");
}
+#endif
}