ruby-macho 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/macho.rb +1 -1
- data/lib/macho/headers.rb +136 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 555d8c0f3cd81252ac1319053a95d643536387a2
|
4
|
+
data.tar.gz: 23a91b4980829b2b8d2133f226aeefbc4bd950b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37f23f18f8a4a4c07933978d7be6bcb65cc6655f778496a8b2b5e2932cfa199f3230bb82399f1f964c06469ec74cece3fd9fb2ef4c6d39c2ef933eaa185ae96c
|
7
|
+
data.tar.gz: 39bfb1a708519820a4afbbccb6a47da8c7ef3ad2641d7ad5c7969709f50f4ce7ffc3369918238848da2786f49fd9e10209d0e7e0b6bbba96a2a9620b6f6bdfc6
|
data/lib/macho.rb
CHANGED
data/lib/macho/headers.rb
CHANGED
@@ -34,6 +34,9 @@ module MachO
|
|
34
34
|
# any CPU (unused?)
|
35
35
|
CPU_TYPE_ANY = -1
|
36
36
|
|
37
|
+
# m68k compatible CPUs
|
38
|
+
CPU_TYPE_MC680X0 = 0x06
|
39
|
+
|
37
40
|
# i386 and later compatible CPUs
|
38
41
|
CPU_TYPE_I386 = 0x07
|
39
42
|
|
@@ -43,6 +46,9 @@ module MachO
|
|
43
46
|
# 32-bit ARM compatible CPUs
|
44
47
|
CPU_TYPE_ARM = 0x0c
|
45
48
|
|
49
|
+
# m88k compatible CPUs
|
50
|
+
CPU_TYPE_MC88000 = 0xd
|
51
|
+
|
46
52
|
# 64-bit ARM compatible CPUs
|
47
53
|
CPU_TYPE_ARM64 = (CPU_TYPE_ARM | CPU_ARCH_ABI64)
|
48
54
|
|
@@ -71,10 +77,42 @@ module MachO
|
|
71
77
|
CPU_SUBTYPE_LIB64 = 0x80000000
|
72
78
|
|
73
79
|
# the lowest common sub-type for `CPU_TYPE_I386`
|
74
|
-
|
80
|
+
CPU_SUBTYPE_I386 = 3
|
81
|
+
|
82
|
+
# the i486 sub-type for `CPU_TYPE_I386`
|
83
|
+
CPU_SUBTYPE_486 = 4
|
84
|
+
|
85
|
+
# the i486SX sub-type for `CPU_TYPE_I386`
|
86
|
+
CPU_SUBTYPE_486SX = 132
|
87
|
+
|
88
|
+
# the i586 (P5, Pentium) sub-type for `CPU_TYPE_I386`
|
89
|
+
CPU_SUBTYPE_586 = 5
|
90
|
+
CPU_SUBTYPE_PENT = CPU_SUBTYPE_586
|
91
|
+
|
92
|
+
# the Pentium Pro (P6) sub-type for `CPU_TYPE_I386`
|
93
|
+
CPU_SUBTYPE_PENTPRO = 22
|
94
|
+
|
95
|
+
# the Pentium II (P6, M3?) sub-type for `CPU_TYPE_I386`
|
96
|
+
CPU_SUBTYPE_PENTII_M3 = 54
|
97
|
+
|
98
|
+
# the Pentium II (P6, M5?) sub-type for `CPU_TYPE_I386`
|
99
|
+
CPU_SUBTYPE_PENTII_M5 = 86
|
100
|
+
|
101
|
+
# the Pentium 4 (Netburst) sub-type for `CPU_TYPE_I386`
|
102
|
+
CPU_SUBTYPE_PENTIUM_4 = 10
|
103
|
+
|
104
|
+
# the lowest common sub-type for `CPU_TYPE_MC680X0`
|
105
|
+
CPU_SUBTYPE_MC680X0_ALL = 1
|
106
|
+
CPU_SUBTYPE_MC68030 = CPU_SUBTYPE_MC680X0_ALL
|
107
|
+
|
108
|
+
# the 040 subtype for `CPU_TYPE_MC680X0`
|
109
|
+
CPU_SUBTYPE_MC68040 = 2
|
110
|
+
|
111
|
+
# the 030 subtype for `CPU_TYPE_MC680X0`
|
112
|
+
CPU_SUBTYPE_MC68030_ONLY = 3
|
75
113
|
|
76
114
|
# the lowest common sub-type for `CPU_TYPE_X86_64`
|
77
|
-
CPU_SUBTYPE_X86_64_ALL =
|
115
|
+
CPU_SUBTYPE_X86_64_ALL = CPU_SUBTYPE_I386
|
78
116
|
|
79
117
|
# the Haskell sub-type for `CPU_TYPE_X86_64`
|
80
118
|
CPU_SUBTYPE_X86_64_H = 8
|
@@ -82,15 +120,39 @@ module MachO
|
|
82
120
|
# the lowest common sub-type for `CPU_TYPE_ARM`
|
83
121
|
CPU_SUBTYPE_ARM_ALL = 0
|
84
122
|
|
123
|
+
# the v4t sub-type for `CPU_TYPE_ARM`
|
124
|
+
CPU_SUBTYPE_ARM_V4T = 5
|
125
|
+
|
126
|
+
# the v6 sub-type for `CPU_TYPE_ARM`
|
127
|
+
CPU_SUBTYPE_ARM_V6 = 6
|
128
|
+
|
129
|
+
# the v5 sub-type for `CPU_TYPE_ARM`
|
130
|
+
CPU_SUBTYPE_ARM_V5TEJ = 7
|
131
|
+
|
132
|
+
# the xscale (v5 family) sub-type for `CPU_TYPE_ARM`
|
133
|
+
CPU_SUBTYPE_ARM_XSCALE = 8
|
134
|
+
|
85
135
|
# the v7 sub-type for `CPU_TYPE_ARM`
|
86
136
|
CPU_SUBTYPE_ARM_V7 = 9
|
87
137
|
|
88
|
-
# the
|
138
|
+
# the v7f (Cortex A9) sub-type for `CPU_TYPE_ARM`
|
139
|
+
CPU_SUBTYPE_ARM_V7F = 10
|
140
|
+
|
141
|
+
# the v7s ("Swift") sub-type for `CPU_TYPE_ARM`
|
89
142
|
CPU_SUBTYPE_ARM_V7S = 11
|
90
143
|
|
91
|
-
# the v7k sub-type for `CPU_TYPE_ARM`
|
144
|
+
# the v7k ("Kirkwood40") sub-type for `CPU_TYPE_ARM`
|
92
145
|
CPU_SUBTYPE_ARM_V7K = 12
|
93
146
|
|
147
|
+
# the v6m sub-type for `CPU_TYPE_ARM`
|
148
|
+
CPU_SUBTYPE_ARM_V6M = 14
|
149
|
+
|
150
|
+
# the v7m sub-type for `CPU_TYPE_ARM`
|
151
|
+
CPU_SUBTYPE_ARM_V7M = 15
|
152
|
+
|
153
|
+
# the v7em sub-type for `CPU_TYPE_ARM`
|
154
|
+
CPU_SUBTYPE_ARM_V7EM = 16
|
155
|
+
|
94
156
|
# the v8 sub-type for `CPU_TYPE_ARM`
|
95
157
|
CPU_SUBTYPE_ARM_V8 = 13
|
96
158
|
|
@@ -100,9 +162,43 @@ module MachO
|
|
100
162
|
# the v8 sub-type for `CPU_TYPE_ARM64`
|
101
163
|
CPU_SUBTYPE_ARM64_V8 = 1
|
102
164
|
|
165
|
+
# the lowest common sub-type for `CPU_TYPE_MC88000`
|
166
|
+
CPU_SUBTYPE_MC88000_ALL = 0
|
167
|
+
CPU_SUBTYPE_MMAX_JPC = CPU_SUBTYPE_MC88000_ALL
|
168
|
+
|
169
|
+
# the 100 sub-type for `CPU_TYPE_MC88000`
|
170
|
+
CPU_SUBTYPE_MC88100 = 1
|
171
|
+
|
172
|
+
# the 110 sub-type for `CPU_TYPE_MC88000`
|
173
|
+
CPU_SUBTYPE_MC88110 = 2
|
174
|
+
|
103
175
|
# the lowest common sub-type for `CPU_TYPE_POWERPC`
|
104
176
|
CPU_SUBTYPE_POWERPC_ALL = 0
|
105
177
|
|
178
|
+
# the 601 sub-type for `CPU_TYPE_POWERPC`
|
179
|
+
CPU_SUBTYPE_POWERPC_601 = 1
|
180
|
+
|
181
|
+
# the 602 sub-type for `CPU_TYPE_POWERPC`
|
182
|
+
CPU_SUBTYPE_POWERPC_602 = 2
|
183
|
+
|
184
|
+
# the 603 sub-type for `CPU_TYPE_POWERPC`
|
185
|
+
CPU_SUBTYPE_POWERPC_603 = 3
|
186
|
+
|
187
|
+
# the 603e (G2) sub-type for `CPU_TYPE_POWERPC`
|
188
|
+
CPU_SUBTYPE_POWERPC_603E = 4
|
189
|
+
|
190
|
+
# the 603ev sub-type for `CPU_TYPE_POWERPC`
|
191
|
+
CPU_SUBTYPE_POWERPC_603EV = 5
|
192
|
+
|
193
|
+
# the 604 sub-type for `CPU_TYPE_POWERPC`
|
194
|
+
CPU_SUBTYPE_POWERPC_604 = 6
|
195
|
+
|
196
|
+
# the 604e sub-type for `CPU_TYPE_POWERPC`
|
197
|
+
CPU_SUBTYPE_POWERPC_604E = 7
|
198
|
+
|
199
|
+
# the 620 sub-type for `CPU_TYPE_POWERPC`
|
200
|
+
CPU_SUBTYPE_POWERPC_620 = 8
|
201
|
+
|
106
202
|
# the 750 (G3) sub-type for `CPU_TYPE_POWERPC`
|
107
203
|
CPU_SUBTYPE_POWERPC_750 = 9
|
108
204
|
|
@@ -118,10 +214,19 @@ module MachO
|
|
118
214
|
# any CPU sub-type for CPU type `CPU_TYPE_POWERPC64`
|
119
215
|
CPU_SUBTYPE_POWERPC64_ALL = CPU_SUBTYPE_POWERPC_ALL
|
120
216
|
|
121
|
-
# association of CPU types/subtype pairs to symbol representations
|
217
|
+
# association of CPU types/subtype pairs to symbol representations in
|
218
|
+
# (very) roughly descending order of commonness
|
219
|
+
# @see https://opensource.apple.com/source/cctools/cctools-877.8/libstuff/arch.c
|
122
220
|
CPU_SUBTYPES = {
|
123
221
|
CPU_TYPE_I386 => {
|
124
|
-
|
222
|
+
CPU_SUBTYPE_I386 => :i386,
|
223
|
+
CPU_SUBTYPE_486 => :i486,
|
224
|
+
CPU_SUBTYPE_486SX => :i486SX,
|
225
|
+
CPU_SUBTYPE_586 => :i586, # also "pentium" in arch(3)
|
226
|
+
CPU_SUBTYPE_PENTPRO => :i686, # also "pentpro" in arch(3)
|
227
|
+
CPU_SUBTYPE_PENTII_M3 => :pentIIm3,
|
228
|
+
CPU_SUBTYPE_PENTII_M5 => :pentIIm5,
|
229
|
+
CPU_SUBTYPE_PENTIUM_4 => :pentium4,
|
125
230
|
}.freeze,
|
126
231
|
CPU_TYPE_X86_64 => {
|
127
232
|
CPU_SUBTYPE_X86_64_ALL => :x86_64,
|
@@ -129,17 +234,31 @@ module MachO
|
|
129
234
|
}.freeze,
|
130
235
|
CPU_TYPE_ARM => {
|
131
236
|
CPU_SUBTYPE_ARM_ALL => :arm,
|
237
|
+
CPU_SUBTYPE_ARM_V4T => :armv4t,
|
238
|
+
CPU_SUBTYPE_ARM_V6 => :armv6,
|
239
|
+
CPU_SUBTYPE_ARM_V5TEJ => :armv5,
|
240
|
+
CPU_SUBTYPE_ARM_XSCALE => :xscale,
|
132
241
|
CPU_SUBTYPE_ARM_V7 => :armv7,
|
242
|
+
CPU_SUBTYPE_ARM_V7F => :armv7f,
|
133
243
|
CPU_SUBTYPE_ARM_V7S => :armv7s,
|
134
244
|
CPU_SUBTYPE_ARM_V7K => :armv7k,
|
245
|
+
CPU_SUBTYPE_ARM_V6M => :armv6m,
|
246
|
+
CPU_SUBTYPE_ARM_V7M => :armv7m,
|
247
|
+
CPU_SUBTYPE_ARM_V7EM => :armv7em,
|
135
248
|
CPU_SUBTYPE_ARM_V8 => :armv8,
|
136
249
|
}.freeze,
|
137
250
|
CPU_TYPE_ARM64 => {
|
138
251
|
CPU_SUBTYPE_ARM64_ALL => :arm64,
|
139
|
-
CPU_SUBTYPE_ARM64_V8 => :
|
252
|
+
CPU_SUBTYPE_ARM64_V8 => :arm64v8,
|
140
253
|
}.freeze,
|
141
254
|
CPU_TYPE_POWERPC => {
|
142
255
|
CPU_SUBTYPE_POWERPC_ALL => :ppc,
|
256
|
+
CPU_SUBTYPE_POWERPC_601 => :ppc601,
|
257
|
+
CPU_SUBTYPE_POWERPC_603 => :ppc603,
|
258
|
+
CPU_SUBTYPE_POWERPC_603E => :ppc603e,
|
259
|
+
CPU_SUBTYPE_POWERPC_603EV => :ppc603ev,
|
260
|
+
CPU_SUBTYPE_POWERPC_604 => :ppc604,
|
261
|
+
CPU_SUBTYPE_POWERPC_604E => :ppc604e,
|
143
262
|
CPU_SUBTYPE_POWERPC_750 => :ppc750,
|
144
263
|
CPU_SUBTYPE_POWERPC_7400 => :ppc7400,
|
145
264
|
CPU_SUBTYPE_POWERPC_7450 => :ppc7450,
|
@@ -147,7 +266,17 @@ module MachO
|
|
147
266
|
}.freeze,
|
148
267
|
CPU_TYPE_POWERPC64 => {
|
149
268
|
CPU_SUBTYPE_POWERPC64_ALL => :ppc64,
|
269
|
+
# apparently the only exception to the naming scheme
|
270
|
+
CPU_SUBTYPE_POWERPC_970 => :ppc970_64,
|
150
271
|
}.freeze,
|
272
|
+
CPU_TYPE_MC680X0 => {
|
273
|
+
CPU_SUBTYPE_MC680X0_ALL => :m68k,
|
274
|
+
CPU_SUBTYPE_MC68030 => :mc68030,
|
275
|
+
CPU_SUBTYPE_MC68040 => :mc68040,
|
276
|
+
},
|
277
|
+
CPU_TYPE_MC88000 => {
|
278
|
+
CPU_SUBTYPE_MC88000_ALL => :m88k,
|
279
|
+
},
|
151
280
|
}.freeze
|
152
281
|
|
153
282
|
# relocatable object file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-macho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Woodruff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A library for viewing and manipulating Mach-O files in Ruby.
|
14
14
|
email: william@tuffbizz.com
|