llvm-project/lld/lib/ReaderWriter/ELF/DefaultTargetHandler.h
Shankar Easwaran a96f3a3da4 [lld][InputGraph] Change the Resolver to use inputGraph
Changes :-

a) Functionality in InputGraph to insert Input elements at any position
b) Functionality in the Resolver to use nextFile
c) Move the functionality of assigning file ordinals to InputGraph
d) Changes all inputs to MemoryBuffers
e) Remove LinkerInput, InputFiles, ReaderArchive

llvm-svn: 192081
2013-10-07 02:47:09 +00:00

66 lines
1.9 KiB
C++

//===- lib/ReaderWriter/ELF/DefaultTargetHandler.h ------------------------===//
//
// The LLVM Linker
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLD_READER_WRITER_ELF_DEFAULT_TARGETHANDLER_H
#define LLD_READER_WRITER_ELF_DEFAULT_TARGETHANDLER_H
#include "DefaultLayout.h"
#include "TargetHandler.h"
#include "lld/ReaderWriter/ELFLinkingContext.h"
#include "llvm/ADT/Triple.h"
#include "llvm/Support/ELF.h"
namespace lld {
namespace elf {
template <class ELFT>
class DefaultTargetHandler : public TargetHandler<ELFT> {
public:
DefaultTargetHandler(ELFLinkingContext &context)
: TargetHandler<ELFT>(context) {}
bool doesOverrideELFHeader() { return false; }
void setELFHeader(ELFHeader<ELFT> *elfHeader) {
llvm_unreachable("Target should provide implementation for function ");
}
/// TargetAtomHandler
TargetAtomHandler<ELFT> &targetAtomHandler() {
llvm_unreachable("Target should provide implementation for function ");
}
const TargetRelocationHandler<ELFT> &getRelocationHandler() const {
llvm_unreachable("Target should provide implementation for function ");
}
/// Create a set of Default target sections that a target might needj
void createDefaultSections() {}
/// \brief Add a section to the current Layout
void addSection(Section<ELFT> *section) {}
/// \brief add new symbol file
bool createImplicitFiles(std::vector<std::unique_ptr<File> > &) {
return true;
}
/// \brief Finalize the symbol values
void finalizeSymbolValues() {}
/// \brief allocate Commons, some architectures may move small common
/// symbols over to small data, this would also be used
void allocateCommons() {}
};
} // end namespace elf
} // end namespace lld
#endif