summaryrefslogtreecommitdiffstats
path: root/lld/tools/lld-core/lld-core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/tools/lld-core/lld-core.cpp')
-rw-r--r--lld/tools/lld-core/lld-core.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/lld/tools/lld-core/lld-core.cpp b/lld/tools/lld-core/lld-core.cpp
index 5512961ebf3..eeb49296234 100644
--- a/lld/tools/lld-core/lld-core.cpp
+++ b/lld/tools/lld-core/lld-core.cpp
@@ -12,6 +12,7 @@
#include "lld/Core/Pass.h"
#include "lld/Core/Resolver.h"
#include "lld/ReaderWriter/Reader.h"
+#include "lld/ReaderWriter/ReaderArchive.h"
#include "lld/ReaderWriter/ReaderNative.h"
#include "lld/ReaderWriter/ReaderYAML.h"
#include "lld/ReaderWriter/ReaderELF.h"
@@ -76,6 +77,10 @@ cmdLineUndefinesIsError("undefines-are-errors",
llvm::cl::desc("Any undefined symbols at end is an error"));
llvm::cl::opt<bool>
+cmdLineForceLoad("force-load",
+ llvm::cl::desc("force load all members of the archive"));
+
+llvm::cl::opt<bool>
cmdLineCommonsSearchArchives("commons-search-archives",
llvm::cl::desc("Tentative definitions trigger archive search"));
@@ -214,6 +219,8 @@ int main(int argc, char *argv[]) {
// create object to mange input files
InputFiles inputFiles;
+ ReaderOptionsArchive readerOptionsArchive(cmdLineForceLoad);
+
// read input files into in-memory File objects
TestingReaderOptionsYAML readerOptionsYAML;
@@ -231,7 +238,9 @@ int main(int argc, char *argv[]) {
reader = createReaderPECOFF(lld::ReaderOptionsPECOFF());
break;
case readerELF:
- reader = createReaderELF(lld::ReaderOptionsELF());
+ reader = createReaderELF(lld::ReaderOptionsELF(),
+ readerOptionsArchive);
+
break;
default:
reader = createReaderYAML(readerOptionsYAML);
OpenPOWER on IntegriCloud