blob: 35de3e6e3b25b70f810e88b6a38f7eca26b7d1e1 [file] [log] [blame]
//===- MipsELFDynamic.h ---------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef TARGET_MIPS_MIPSELFDYNAMIC_H
#define TARGET_MIPS_MIPSELFDYNAMIC_H
#ifdef ENABLE_UNITTEST
#include <gtest.h>
#endif
#include <mcld/Target/ELFDynamic.h>
namespace mcld {
class MipsGNULDBackend;
class MipsELFDynamic : public ELFDynamic
{
public:
MipsELFDynamic(const MipsGNULDBackend& pParent, const LinkerConfig& pConfig);
private:
const MipsGNULDBackend& m_pParent;
const LinkerConfig& m_pConfig;
private:
void reserveTargetEntries(const ELFFileFormat& pFormat);
void applyTargetEntries(const ELFFileFormat& pFormat);
size_t getSymTabNum(const ELFFileFormat& pFormat) const;
size_t getGotSym(const ELFFileFormat& pFormat) const;
size_t getLocalGotNum(const ELFFileFormat& pFormat) const;
uint64_t getBaseAddress();
};
} // namespace of mcld
#endif