1343181Sdim//===-- SafeMachO.h -----------------------------------*- C++ -*-===// 2343181Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6343181Sdim// 7343181Sdim//===----------------------------------------------------------------------===// 8343181Sdim#ifndef liblldb_SafeMachO_h_ 9343181Sdim#define liblldb_SafeMachO_h_ 10343181Sdim 11343181Sdim// This header file is required to work around collisions between the defines 12343181Sdim// in mach/machine.h, and enum members of the same name in llvm's MachO.h. If 13343181Sdim// you want to use llvm/Support/MachO.h, use this file instead. The caveats 14343181Sdim// are: 1) You can only use the MachO.h enums, you can't use the defines. That 15343181Sdim// won't make a difference since the values 16343181Sdim// are the same. 17343181Sdim// 2) If you need any header file that relies on mach/machine.h, you must 18343181Sdim// include that first. 3) This isn't a total solution, it doesn't undef every 19343181Sdim// define that MachO.h has borrowed from various system headers, 20343181Sdim// only the ones that come from mach/machine.h because that is the one we 21343181Sdim// ended up pulling in from various places. 22343181Sdim// 23343181Sdim 24343181Sdim#undef CPU_ARCH_MASK 25343181Sdim#undef CPU_ARCH_ABI64 26343181Sdim 27343181Sdim#undef CPU_TYPE_ANY 28343181Sdim#undef CPU_TYPE_X86 29343181Sdim#undef CPU_TYPE_I386 30343181Sdim#undef CPU_TYPE_X86_64 31343181Sdim#undef CPU_TYPE_MC98000 32343181Sdim#undef CPU_TYPE_ARM 33343181Sdim#undef CPU_TYPE_ARM64 34343181Sdim#undef CPU_TYPE_SPARC 35343181Sdim#undef CPU_TYPE_POWERPC 36343181Sdim#undef CPU_TYPE_POWERPC64 37343181Sdim 38343181Sdim#undef CPU_SUB_TYPE_MASK 39343181Sdim#undef CPU_SUB_TYPE_LIB64 40343181Sdim 41343181Sdim#undef CPU_SUBTYPE_MULTIPLE 42343181Sdim 43343181Sdim#undef CPU_SUBTYPE_I386_ALL 44343181Sdim#undef CPU_SUBTYPE_386 45343181Sdim#undef CPU_SUBTYPE_486 46343181Sdim#undef CPU_SUBTYPE_486SX 47343181Sdim#undef CPU_SUBTYPE_586 48343181Sdim#undef CPU_SUBTYPE_PENT 49343181Sdim#undef CPU_SUBTYPE_PENTPRO 50343181Sdim#undef CPU_SUBTYPE_PENTII_M3 51343181Sdim#undef CPU_SUBTYPE_PENTII_M5 52343181Sdim#undef CPU_SUBTYPE_CELERON 53343181Sdim#undef CPU_SUBTYPE_CELERON_MOBILE 54343181Sdim#undef CPU_SUBTYPE_PENTIUM_3 55343181Sdim#undef CPU_SUBTYPE_PENTIUM_3_M 56343181Sdim#undef CPU_SUBTYPE_PENTIUM_3_XEON 57343181Sdim#undef CPU_SUBTYPE_PENTIUM_M 58343181Sdim#undef CPU_SUBTYPE_PENTIUM_4 59343181Sdim#undef CPU_SUBTYPE_PENTIUM_4_M 60343181Sdim#undef CPU_SUBTYPE_ITANIUM 61343181Sdim#undef CPU_SUBTYPE_ITANIUM_2 62343181Sdim#undef CPU_SUBTYPE_XEON 63343181Sdim#undef CPU_SUBTYPE_XEON_MP 64343181Sdim 65343181Sdim#undef CPU_SUBTYPE_X86_ALL 66343181Sdim#undef CPU_SUBTYPE_X86_64_ALL 67343181Sdim#undef CPU_SUBTYPE_X86_ARCH1 68343181Sdim#undef CPU_SUBTYPE_X86_64_H 69343181Sdim 70343181Sdim#undef CPU_SUBTYPE_INTEL 71343181Sdim#undef CPU_SUBTYPE_INTEL_FAMILY 72343181Sdim#undef CPU_SUBTYPE_INTEL_FAMILY_MAX 73343181Sdim#undef CPU_SUBTYPE_INTEL_MODEL 74343181Sdim#undef CPU_SUBTYPE_INTEL_MODEL_ALL 75343181Sdim 76343181Sdim#undef CPU_SUBTYPE_ARM 77343181Sdim#undef CPU_SUBTYPE_ARM_ALL 78343181Sdim#undef CPU_SUBTYPE_ARM_V4T 79343181Sdim#undef CPU_SUBTYPE_ARM_V6 80343181Sdim#undef CPU_SUBTYPE_ARM_V5 81343181Sdim#undef CPU_SUBTYPE_ARM_V5TEJ 82343181Sdim#undef CPU_SUBTYPE_ARM_XSCALE 83343181Sdim#undef CPU_SUBTYPE_ARM_V7 84343181Sdim 85343181Sdim#undef CPU_SUBTYPE_ARM_V7S 86343181Sdim#undef CPU_SUBTYPE_ARM_V7K 87343181Sdim#undef CPU_SUBTYPE_ARM_V6M 88343181Sdim#undef CPU_SUBTYPE_ARM_V7M 89343181Sdim#undef CPU_SUBTYPE_ARM_V7EM 90343181Sdim 91343181Sdim#undef CPU_SUBTYPE_ARM64_ALL 92343181Sdim 93343181Sdim#undef CPU_SUBTYPE_SPARC_ALL 94343181Sdim 95343181Sdim#undef CPU_SUBTYPE_POWERPC 96343181Sdim#undef CPU_SUBTYPE_POWERPC_ALL 97343181Sdim#undef CPU_SUBTYPE_POWERPC_601 98343181Sdim#undef CPU_SUBTYPE_POWERPC_602 99343181Sdim#undef CPU_SUBTYPE_POWERPC_603 100343181Sdim#undef CPU_SUBTYPE_POWERPC_603e 101343181Sdim#undef CPU_SUBTYPE_POWERPC_603ev 102343181Sdim#undef CPU_SUBTYPE_POWERPC_604 103343181Sdim#undef CPU_SUBTYPE_POWERPC_604e 104343181Sdim#undef CPU_SUBTYPE_POWERPC_620 105343181Sdim#undef CPU_SUBTYPE_POWERPC_750 106343181Sdim#undef CPU_SUBTYPE_POWERPC_7400 107343181Sdim#undef CPU_SUBTYPE_POWERPC_7450 108343181Sdim#undef CPU_SUBTYPE_POWERPC_970 109343181Sdim 110343181Sdim#undef CPU_SUBTYPE_MC980000_ALL 111343181Sdim#undef CPU_SUBTYPE_MC98601 112343181Sdim 113343181Sdim#include "llvm/BinaryFormat/MachO.h" 114343181Sdim 115343181Sdim#endif // liblldb_SafeMachO_h_ 116