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