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