summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/ARM
diff options
context:
space:
mode:
authorDenis Protivensky <dprotivensky@accesssoftek.com>2015-05-21 12:52:00 +0000
committerDenis Protivensky <dprotivensky@accesssoftek.com>2015-05-21 12:52:00 +0000
commitaf1c9dd5135ff2aba6f0334b9155c01be7403ced (patch)
tree0b70e893fffe5b2013a6c1db28e85784a21d5ef1 /lld/lib/ReaderWriter/ELF/ARM
parent31619a847e39cae8b8fa41c75a35a81aed88a34d (diff)
downloadbcm5719-llvm-af1c9dd5135ff2aba6f0334b9155c01be7403ced.tar.gz
bcm5719-llvm-af1c9dd5135ff2aba6f0334b9155c01be7403ced.zip
[ARM] Add dynamic symbols to the dynamic library writer
llvm-svn: 237898
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/ARM')
-rw-r--r--lld/lib/ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/lld/lib/ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h
index 40eadacba79..da843b97abc 100644
--- a/lld/lib/ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h
+++ b/lld/lib/ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h
@@ -25,15 +25,22 @@ public:
protected:
// Add any runtime files and their atoms to the output
void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override;
+
+private:
+ ARMLinkingContext &_ctx;
};
ARMDynamicLibraryWriter::ARMDynamicLibraryWriter(ARMLinkingContext &ctx,
ARMTargetLayout &layout)
- : ARMELFWriter(ctx, layout) {}
+ : ARMELFWriter(ctx, layout), _ctx(ctx) {}
void ARMDynamicLibraryWriter::createImplicitFiles(
std::vector<std::unique_ptr<File>> &result) {
DynamicLibraryWriter::createImplicitFiles(result);
+ auto file = llvm::make_unique<RuntimeFile<ELF32LE>>(_ctx, "ARM dynamic file");
+ file->addAbsoluteAtom(gotSymbol);
+ file->addAbsoluteAtom(dynamicSymbol);
+ result.push_back(std::move(file));
}
} // namespace elf
OpenPOWER on IntegriCloud