diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-03-24 21:31:36 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-03-24 21:31:36 +0000 |
commit | fb911942f1434f3d1750f83f25f5e42c80e60638 (patch) | |
tree | 1678c4a4f0182e4029a86d135aa4a1b7d09e3c41 /lib/ReaderWriter/ELF/Reader.cpp |
Notes
Diffstat (limited to 'lib/ReaderWriter/ELF/Reader.cpp')
-rw-r--r-- | lib/ReaderWriter/ELF/Reader.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/ReaderWriter/ELF/Reader.cpp b/lib/ReaderWriter/ELF/Reader.cpp new file mode 100644 index 000000000000..fc113d478913 --- /dev/null +++ b/lib/ReaderWriter/ELF/Reader.cpp @@ -0,0 +1,43 @@ +//===- lib/ReaderWriter/ELF/Reader.cpp ------------------------------------===// +// +// The LLVM Linker +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// +/// \file +/// \brief Defines the ELF Reader and all helper sub classes to consume an ELF +/// file and produces atoms out of it. +/// +//===----------------------------------------------------------------------===// + +#include "ELFReader.h" +#include <map> +#include <vector> + +using llvm::support::endianness; +using namespace llvm::object; + +namespace lld { + +// This dynamic registration of a handler causes support for all ELF +// architectures to be pulled into the linker. If we want to support making a +// linker that only supports one ELF architecture, we'd need to change this +// to have a different registration method for each architecture. +void Registry::addSupportELFObjects(ELFLinkingContext &ctx) { + + // Tell registry about the ELF object file parser. + add(std::move(ctx.targetHandler()->getObjReader())); + + // Tell registry about the relocation name to number mapping for this arch. + ctx.targetHandler()->registerRelocationNames(*this); +} + +void Registry::addSupportELFDynamicSharedObjects(ELFLinkingContext &ctx) { + // Tell registry about the ELF dynamic shared library file parser. + add(ctx.targetHandler()->getDSOReader()); +} + +} // end namespace lld |