//===- ZOption.h ----------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_ZOPTION_H #define MCLD_ZOPTION_H #ifdef ENABLE_UNITTEST #include <gtest.h> #endif #include <llvm/Support/DataTypes.h> namespace mcld { /** \class ZOption * \brief The -z options for GNU ld compatibility. */ class ZOption { public: enum Kind { CombReloc, NoCombReloc, Defs, ExecStack, NoExecStack, InitFirst, InterPose, LoadFltr, MulDefs, NoCopyReloc, NoDefaultLib, NoDelete, NoDLOpen, NoDump, Relro, NoRelro, Lazy, Now, Origin, CommPageSize, MaxPageSize, Unknown }; public: ZOption(); ~ZOption(); Kind kind() const { return m_Kind; } uint64_t pageSize() const { return m_PageSize; } void setKind(Kind pKind) { m_Kind = pKind; } void setPageSize(uint64_t pPageSize) { m_PageSize = pPageSize; } private: Kind m_Kind; uint64_t m_PageSize; }; } // namespace of mcld #endif