SafeMachO.h revision 343218
1//===-- SafeMachO.h -----------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9#ifndef liblldb_SafeMachO_h_ 10#define liblldb_SafeMachO_h_ 11 12// This header file is required to work around collisions between the defines 13// in mach/machine.h, and enum members of the same name in llvm's MachO.h. If 14// you want to use llvm/Support/MachO.h, use this file instead. The caveats 15// are: 1) You can only use the MachO.h enums, you can't use the defines. That 16// won't make a difference since the values 17// are the same. 18// 2) If you need any header file that relies on mach/machine.h, you must 19// include that first. 3) This isn't a total solution, it doesn't undef every 20// define that MachO.h has borrowed from various system headers, 21// only the ones that come from mach/machine.h because that is the one we 22// ended up pulling in from various places. 23// 24 25#undef CPU_ARCH_MASK 26#undef CPU_ARCH_ABI64 27 28#undef CPU_TYPE_ANY 29#undef CPU_TYPE_X86 30#undef CPU_TYPE_I386 31#undef CPU_TYPE_X86_64 32#undef CPU_TYPE_MC98000 33#undef CPU_TYPE_ARM 34#undef CPU_TYPE_ARM64 35#undef CPU_TYPE_SPARC 36#undef CPU_TYPE_POWERPC 37#undef CPU_TYPE_POWERPC64 38 39#undef CPU_SUB_TYPE_MASK 40#undef CPU_SUB_TYPE_LIB64 41 42#undef CPU_SUBTYPE_MULTIPLE 43 44#undef CPU_SUBTYPE_I386_ALL 45#undef CPU_SUBTYPE_386 46#undef CPU_SUBTYPE_486 47#undef CPU_SUBTYPE_486SX 48#undef CPU_SUBTYPE_586 49#undef CPU_SUBTYPE_PENT 50#undef CPU_SUBTYPE_PENTPRO 51#undef CPU_SUBTYPE_PENTII_M3 52#undef CPU_SUBTYPE_PENTII_M5 53#undef CPU_SUBTYPE_CELERON 54#undef CPU_SUBTYPE_CELERON_MOBILE 55#undef CPU_SUBTYPE_PENTIUM_3 56#undef CPU_SUBTYPE_PENTIUM_3_M 57#undef CPU_SUBTYPE_PENTIUM_3_XEON 58#undef CPU_SUBTYPE_PENTIUM_M 59#undef CPU_SUBTYPE_PENTIUM_4 60#undef CPU_SUBTYPE_PENTIUM_4_M 61#undef CPU_SUBTYPE_ITANIUM 62#undef CPU_SUBTYPE_ITANIUM_2 63#undef CPU_SUBTYPE_XEON 64#undef CPU_SUBTYPE_XEON_MP 65 66#undef CPU_SUBTYPE_X86_ALL 67#undef CPU_SUBTYPE_X86_64_ALL 68#undef CPU_SUBTYPE_X86_ARCH1 69#undef CPU_SUBTYPE_X86_64_H 70 71#undef CPU_SUBTYPE_INTEL 72#undef CPU_SUBTYPE_INTEL_FAMILY 73#undef CPU_SUBTYPE_INTEL_FAMILY_MAX 74#undef CPU_SUBTYPE_INTEL_MODEL 75#undef CPU_SUBTYPE_INTEL_MODEL_ALL 76 77#undef CPU_SUBTYPE_ARM 78#undef CPU_SUBTYPE_ARM_ALL 79#undef CPU_SUBTYPE_ARM_V4T 80#undef CPU_SUBTYPE_ARM_V6 81#undef CPU_SUBTYPE_ARM_V5 82#undef CPU_SUBTYPE_ARM_V5TEJ 83#undef CPU_SUBTYPE_ARM_XSCALE 84#undef CPU_SUBTYPE_ARM_V7 85 86#undef CPU_SUBTYPE_ARM_V7S 87#undef CPU_SUBTYPE_ARM_V7K 88#undef CPU_SUBTYPE_ARM_V6M 89#undef CPU_SUBTYPE_ARM_V7M 90#undef CPU_SUBTYPE_ARM_V7EM 91 92#undef CPU_SUBTYPE_ARM64_ALL 93 94#undef CPU_SUBTYPE_SPARC_ALL 95 96#undef CPU_SUBTYPE_POWERPC 97#undef CPU_SUBTYPE_POWERPC_ALL 98#undef CPU_SUBTYPE_POWERPC_601 99#undef CPU_SUBTYPE_POWERPC_602 100#undef CPU_SUBTYPE_POWERPC_603 101#undef CPU_SUBTYPE_POWERPC_603e 102#undef CPU_SUBTYPE_POWERPC_603ev 103#undef CPU_SUBTYPE_POWERPC_604 104#undef CPU_SUBTYPE_POWERPC_604e 105#undef CPU_SUBTYPE_POWERPC_620 106#undef CPU_SUBTYPE_POWERPC_750 107#undef CPU_SUBTYPE_POWERPC_7400 108#undef CPU_SUBTYPE_POWERPC_7450 109#undef CPU_SUBTYPE_POWERPC_970 110 111#undef CPU_SUBTYPE_MC980000_ALL 112#undef CPU_SUBTYPE_MC98601 113 114#include "llvm/BinaryFormat/MachO.h" 115 116#endif // liblldb_SafeMachO_h_ 117