MipsELFDynamic.h revision 37b74a387bb3993387029859c2d9d051c41c724e
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 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