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 { 20 public: 21 MipsELFDynamic(const MipsGNULDBackend& pParent, const LinkerConfig& pConfig); 22 23 private: 24 const MipsGNULDBackend& m_pParent; 25 const LinkerConfig& m_pConfig; 26 27 private: 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