diff options
Diffstat (limited to 'lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h')
-rw-r--r-- | lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h b/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h deleted file mode 100644 index 84415b273f44..000000000000 --- a/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h +++ /dev/null @@ -1,67 +0,0 @@ -//===- lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h ---------===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -#ifndef HEXAGON_DYNAMIC_LIBRARY_WRITER_H -#define HEXAGON_DYNAMIC_LIBRARY_WRITER_H - -#include "DynamicLibraryWriter.h" -#include "HexagonLinkingContext.h" - -namespace lld { -namespace elf { - -class HexagonTargetLayout; - -class HexagonDynamicLibraryWriter : public DynamicLibraryWriter<ELF32LE> { -public: - HexagonDynamicLibraryWriter(HexagonLinkingContext &ctx, - HexagonTargetLayout &layout); - -protected: - // Add any runtime files and their atoms to the output - void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; - - void finalizeDefaultAtomValues() override; - - std::error_code setELFHeader() override { - DynamicLibraryWriter::setELFHeader(); - setHexagonELFHeader(*_elfHeader); - return std::error_code(); - } - -private: - HexagonLinkingContext &_ctx; - HexagonTargetLayout &_targetLayout; -}; - -HexagonDynamicLibraryWriter::HexagonDynamicLibraryWriter( - HexagonLinkingContext &ctx, HexagonTargetLayout &layout) - : DynamicLibraryWriter(ctx, layout), _ctx(ctx), _targetLayout(layout) {} - -void HexagonDynamicLibraryWriter::createImplicitFiles( - std::vector<std::unique_ptr<File>> &result) { - DynamicLibraryWriter::createImplicitFiles(result); - // Add the default atoms as defined for hexagon - auto file = - llvm::make_unique<RuntimeFile<ELF32LE>>(_ctx, "Hexagon runtime file"); - file->addAbsoluteAtom("_GLOBAL_OFFSET_TABLE_"); - file->addAbsoluteAtom("_DYNAMIC"); - result.push_back(std::move(file)); -} - -void HexagonDynamicLibraryWriter::finalizeDefaultAtomValues() { - // Finalize the atom values that are part of the parent. - DynamicLibraryWriter::finalizeDefaultAtomValues(); - if (_ctx.isDynamic()) - finalizeHexagonRuntimeAtomValues(_targetLayout); -} - -} // namespace elf -} // namespace lld - -#endif // HEXAGON_DYNAMIC_LIBRARY_WRITER_H |