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
66 lines
1.9 KiB
C++
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
|