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 14 namespace mcld { 15 16 class MipsGNULDBackend; 17 18 class MipsELFDynamic : public ELFDynamic { 19 public: 20 MipsELFDynamic(const MipsGNULDBackend& pParent, const LinkerConfig& pConfig); 21 22 private: 23 const MipsGNULDBackend& m_pParent; 24 const LinkerConfig& m_pConfig; 25 26 private: 27 void reserveTargetEntries(const ELFFileFormat& pFormat); 28 void applyTargetEntries(const ELFFileFormat& pFormat); 29 30 size_t getSymTabNum(const ELFFileFormat& pFormat) const; 31 size_t getGotSym(const ELFFileFormat& pFormat) const; 32 size_t getLocalGotNum(const ELFFileFormat& pFormat) const; 33 uint64_t getBaseAddress(); 34 }; 35 36 } // namespace mcld 37 38 #endif // TARGET_MIPS_MIPSELFDYNAMIC_H_ 39