ZOption.h revision 533eae20118036f425f27bf0536ef0ccbb090b65
1//===- ZOption.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 MCLD_MC_ZOPTION_H 10#define MCLD_MC_ZOPTION_H 11 12#include <llvm/Support/DataTypes.h> 13 14namespace mcld { 15 16/** \class ZOption 17 * \brief The -z options for GNU ld compatibility. 18 */ 19class ZOption 20{ 21public: 22 enum Kind { 23 CombReloc, 24 NoCombReloc, 25 Defs, 26 ExecStack, 27 NoExecStack, 28 InitFirst, 29 InterPose, 30 LoadFltr, 31 MulDefs, 32 NoCopyReloc, 33 NoDefaultLib, 34 NoDelete, 35 NoDLOpen, 36 NoDump, 37 Relro, 38 NoRelro, 39 Lazy, 40 Now, 41 Origin, 42 CommPageSize, 43 MaxPageSize, 44 Unknown 45 }; 46 47public: 48 ZOption(); 49 50 Kind kind() const { return m_Kind; } 51 52 void setKind(Kind pKind) { m_Kind = pKind; } 53 54 uint64_t pageSize() const { return m_PageSize; } 55 56 void setPageSize(uint64_t pPageSize) { m_PageSize = pPageSize; } 57 58private: 59 Kind m_Kind; 60 uint64_t m_PageSize; 61}; 62 63} // namespace of mcld 64 65#endif 66 67