summaryrefslogtreecommitdiffstats
path: root/lld/ELF/Driver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/ELF/Driver.cpp')
-rw-r--r--lld/ELF/Driver.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index c71cfca7017..f72fa3dd28e 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -36,12 +36,14 @@ LinkerDriver *elf::Driver;
bool elf::link(ArrayRef<const char *> Args, raw_ostream &Error) {
HasError = false;
ErrorOS = &Error;
+
Configuration C;
LinkerDriver D;
- LinkerScript LS;
+ ScriptConfiguration SC;
Config = &C;
Driver = &D;
- Script = &LS;
+ ScriptConfig = &SC;
+
Driver->main(Args);
return !HasError;
}
@@ -108,7 +110,7 @@ void LinkerDriver::addFile(StringRef Path) {
switch (identify_magic(MBRef.getBuffer())) {
case file_magic::unknown:
- Script->read(MBRef);
+ readLinkerScript(MBRef);
return;
case file_magic::archive:
if (WholeArchive) {
@@ -415,8 +417,11 @@ void LinkerDriver::createFiles(opt::InputArgList &Args) {
template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) {
SymbolTable<ELFT> Symtab;
+
std::unique_ptr<TargetInfo> TI(createTarget());
Target = TI.get();
+ LinkerScript<ELFT> LS;
+ Script<ELFT>::X = &LS;
Config->Rela = ELFT::Is64Bits;
OpenPOWER on IntegriCloud