15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- MipsELFDynamic.h ---------------------------------------------------===//
25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//                     The MCLinker Project
45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source
65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details.
75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===//
95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifndef MCLD_Mips_ELFDYNAMIC_SECTION_H
105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#define MCLD_Mips_ELFDYNAMIC_SECTION_H
115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifdef ENABLE_UNITTEST
125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <gtest.h>
135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif
145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <mcld/Target/ELFDynamic.h>
165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaonamespace mcld {
185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoclass MipsGNULDBackend;
205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoclass MipsELFDynamic : public ELFDynamic
225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaopublic:
245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  MipsELFDynamic(const MipsGNULDBackend& pParent);
255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  ~MipsELFDynamic();
265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoprivate:
285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const MipsGNULDBackend& m_pParent;
295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoprivate:
315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  void reserveTargetEntries(const ELFFileFormat& pFormat);
325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  void applyTargetEntries(const ELFFileFormat& pFormat);
335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  size_t getSymTabNum(const ELFFileFormat& pFormat) const;
355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  size_t getGotSym(const ELFFileFormat& pFormat) const;
365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  size_t getLocalGotNum(const ELFFileFormat& pFormat) const;
375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao};
385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} // namespace of mcld
405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif
42