//===- ZOption.h ----------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_MC_ZOPTION_H_ #define MCLD_MC_ZOPTION_H_ #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(); explicit ZOption(Kind pKind); ZOption(Kind pKind, uint64_t pPageSize); Kind kind() const { return m_Kind; } void setKind(Kind pKind) { m_Kind = pKind; } uint64_t pageSize() const { return m_PageSize; } void setPageSize(uint64_t pPageSize) { m_PageSize = pPageSize; } private: Kind m_Kind; uint64_t m_PageSize; }; } // namespace mcld #endif // MCLD_MC_ZOPTION_H_