diff options
| author | Shankar Easwaran <shankare@codeaurora.org> | 2013-01-25 07:39:18 +0000 |
|---|---|---|
| committer | Shankar Easwaran <shankare@codeaurora.org> | 2013-01-25 07:39:18 +0000 |
| commit | 3256d4ff621a14cfbb45f7206e84e5c018042a0a (patch) | |
| tree | ae8d12da6b8c01116f5392da8f5f1e8f7a6f91d4 /lld/lib/ReaderWriter/ELF/DefaultELFTargetHandler.h | |
| parent | 29bcacd79d52d1dc8148ba2b9e96bdb0cb776876 (diff) | |
| download | bcm5719-llvm-3256d4ff621a14cfbb45f7206e84e5c018042a0a.tar.gz bcm5719-llvm-3256d4ff621a14cfbb45f7206e84e5c018042a0a.zip | |
add elf targethandler
llvm-svn: 173430
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/DefaultELFTargetHandler.h')
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/DefaultELFTargetHandler.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/ELF/DefaultELFTargetHandler.h b/lld/lib/ReaderWriter/ELF/DefaultELFTargetHandler.h new file mode 100644 index 00000000000..b70901c9c03 --- /dev/null +++ b/lld/lib/ReaderWriter/ELF/DefaultELFTargetHandler.h @@ -0,0 +1,69 @@ +//===- lib/ReaderWriter/ELF/DefaultELFTargetHandler.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_DEFAULT_ELF_TARGETHANDLER_H +#define LLD_READER_WRITER_DEFAULT_ELF_TARGETHANDLER_H + +#include "lld/ReaderWriter/ELFTargetInfo.h" + +#include "lld/Core/LinkerOptions.h" + +#include "llvm/ADT/Triple.h" +#include "llvm/Support/ELF.h" + +#include "DefaultELFLayout.h" +#include "ELFTargetHandler.h" + +namespace lld { +namespace elf { + +template <class ELFT> +class DefaultELFTargetHandler : public ELFTargetHandler<ELFT> { + +public: + DefaultELFTargetHandler(ELFTargetInfo &targetInfo) + : ELFTargetHandler<ELFT>(targetInfo) { + } + + bool doesOverrideELFHeader() { return false; } + + void setELFHeaderInfo(ELFHeader<ELFT> *elfHeader) { + llvm_unreachable("Target should provide implementation for function "); + } + + /// ELFTargetLayout + ELFTargetLayout<ELFT> &targetLayout() { + llvm_unreachable("Target should provide implementation for function "); + } + + /// ELFTargetAtomHandler + ELFTargetAtomHandler<ELFT> &targetAtomHandler() { + 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 + void addFiles(InputFiles &) {} + + /// \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() {} +}; + +} // elf +} // lld + +#endif |

