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