1//===- MipsELFDynamic.h ---------------------------------------------------===// 2// 3// The MCLinker Project 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9#ifndef TARGET_MIPS_MIPSELFDYNAMIC_H 10#define TARGET_MIPS_MIPSELFDYNAMIC_H 11 12#include <mcld/Target/ELFDynamic.h> 13 14namespace mcld { 15 16class MipsGNULDBackend; 17 18class MipsELFDynamic : public ELFDynamic 19{ 20public: 21 MipsELFDynamic(const MipsGNULDBackend& pParent, const LinkerConfig& pConfig); 22 23private: 24 const MipsGNULDBackend& m_pParent; 25 const LinkerConfig& m_pConfig; 26 27private: 28 void reserveTargetEntries(const ELFFileFormat& pFormat); 29 void applyTargetEntries(const ELFFileFormat& pFormat); 30 31 size_t getSymTabNum(const ELFFileFormat& pFormat) const; 32 size_t getGotSym(const ELFFileFormat& pFormat) const; 33 size_t getLocalGotNum(const ELFFileFormat& pFormat) const; 34 uint64_t getBaseAddress(); 35}; 36 37} // namespace of mcld 38 39#endif 40