aboutsummaryrefslogtreecommitdiff
path: root/lld/tools
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2020-07-26 19:36:28 +0000
committerDimitry Andric <dim@FreeBSD.org>2020-07-26 19:36:28 +0000
commitcfca06d7963fa0909f90483b42a6d7d194d01e08 (patch)
tree209fb2a2d68f8f277793fc8df46c753d31bc853b /lld/tools
parent706b4fc47bbc608932d3b491ae19a3b9cde9497b (diff)
downloadsrc-cfca06d7963fa0909f90483b42a6d7d194d01e08.tar.gz
src-cfca06d7963fa0909f90483b42a6d7d194d01e08.zip
Vendor import of llvm-project master 2e10b7a39b9, the last commit beforevendor/llvm-project/llvmorg-11-init-20887-g2e10b7a39b9vendor/llvm-project/master
the llvmorg-12-init tag, from which release/11.x was branched.
Notes
Notes: svn path=/vendor/llvm-project/master/; revision=363578 svn path=/vendor/llvm-project/llvmorg-11-init-20887-g2e10b7a39b9/; revision=363579; tag=vendor/llvm-project/llvmorg-11-init-20887-g2e10b7a39b9
Diffstat (limited to 'lld/tools')
-rw-r--r--lld/tools/lld/lld.cpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/lld/tools/lld/lld.cpp b/lld/tools/lld/lld.cpp
index 72ff758164d8..8a8f8d04bbda 100644
--- a/lld/tools/lld/lld.cpp
+++ b/lld/tools/lld/lld.cpp
@@ -36,6 +36,7 @@
#include "llvm/Support/Host.h"
#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/Path.h"
+#include "llvm/Support/PluginLoader.h"
#include <cstdlib>
using namespace lld;
@@ -44,10 +45,11 @@ using namespace llvm::sys;
enum Flavor {
Invalid,
- Gnu, // -flavor gnu
- WinLink, // -flavor link
- Darwin, // -flavor darwin
- Wasm, // -flavor wasm
+ Gnu, // -flavor gnu
+ WinLink, // -flavor link
+ Darwin, // -flavor darwin
+ DarwinNew, // -flavor darwinnew
+ Wasm, // -flavor wasm
};
LLVM_ATTRIBUTE_NORETURN static void die(const Twine &s) {
@@ -61,6 +63,7 @@ static Flavor getFlavor(StringRef s) {
.CasesLower("wasm", "ld-wasm", Wasm)
.CaseLower("link", WinLink)
.CasesLower("ld64", "ld64.lld", "darwin", Darwin)
+ .CaseLower("darwinnew", DarwinNew)
.Default(Invalid);
}
@@ -93,17 +96,9 @@ static bool isPETarget(std::vector<const char *> &v) {
}
static Flavor parseProgname(StringRef progname) {
-#if __APPLE__
- // Use Darwin driver for "ld" on Darwin.
- if (progname == "ld")
- return Darwin;
-#endif
-
-#if LLVM_ON_UNIX
- // Use GNU driver for "ld" on other Unix-like system.
+ // Use GNU driver for "ld" by default.
if (progname == "ld")
return Gnu;
-#endif
// Progname may be something like "lld-gnu". Parse it.
SmallVector<StringRef, 3> v;
@@ -156,6 +151,8 @@ int main(int argc, const char **argv) {
return !coff::link(args, canExitEarly(), llvm::outs(), llvm::errs());
case Darwin:
return !mach_o::link(args, canExitEarly(), llvm::outs(), llvm::errs());
+ case DarwinNew:
+ return !macho::link(args, canExitEarly(), llvm::outs(), llvm::errs());
case Wasm:
return !wasm::link(args, canExitEarly(), llvm::outs(), llvm::errs());
default: