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