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