@@ -19,6 +19,7 @@ pub enum Arch {
19
19
I386 ,
20
20
I686 ,
21
21
X86_64 ,
22
+ X86_64h ,
22
23
X86_64_sim ,
23
24
X86_64_macabi ,
24
25
Arm64_macabi ,
@@ -36,6 +37,7 @@ impl Arch {
36
37
I386 => "i386" ,
37
38
I686 => "i686" ,
38
39
X86_64 | X86_64_sim | X86_64_macabi => "x86_64" ,
40
+ X86_64h => "x86_64h" ,
39
41
}
40
42
}
41
43
@@ -44,13 +46,13 @@ impl Arch {
44
46
Armv7 | Armv7k | Armv7s => "arm" ,
45
47
Arm64 | Arm64_32 | Arm64_macabi | Arm64_sim => "aarch64" ,
46
48
I386 | I686 => "x86" ,
47
- X86_64 | X86_64_sim | X86_64_macabi => "x86_64" ,
49
+ X86_64 | X86_64_sim | X86_64_macabi | X86_64h => "x86_64" ,
48
50
} )
49
51
}
50
52
51
53
fn target_abi ( self ) -> & ' static str {
52
54
match self {
53
- Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | I686 | X86_64 => "" ,
55
+ Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | I686 | X86_64 | X86_64h => "" ,
54
56
X86_64_macabi | Arm64_macabi => "macabi" ,
55
57
// x86_64-apple-ios is a simulator target, even though it isn't
56
58
// declared that way in the target like the other ones...
@@ -67,6 +69,10 @@ impl Arch {
67
69
Arm64_32 => "apple-s4" ,
68
70
I386 | I686 => "yonah" ,
69
71
X86_64 | X86_64_sim => "core2" ,
72
+ // Note: `core-avx2` is slightly more advanced than `x86_64h`, see
73
+ // comments (and disabled features) in `x86_64h_apple_darwin` for
74
+ // details.
75
+ X86_64h => "core-avx2" ,
70
76
X86_64_macabi => "core2" ,
71
77
Arm64_macabi => "apple-a12" ,
72
78
Arm64_sim => "apple-a12" ,
@@ -182,8 +188,13 @@ fn deployment_target(var_name: &str) -> Option<(u32, u32)> {
182
188
}
183
189
184
190
fn macos_default_deployment_target ( arch : Arch ) -> ( u32 , u32 ) {
185
- // Note: Arm64_sim is not included since macOS has no simulator.
186
- if matches ! ( arch, Arm64 | Arm64_macabi ) { ( 11 , 0 ) } else { ( 10 , 7 ) }
191
+ match arch {
192
+ // Note: Arm64_sim is not included since macOS has no simulator.
193
+ Arm64 | Arm64_macabi => ( 11 , 0 ) ,
194
+ // x86_64h-apple-darwin only supports macOS 10.8 and later
195
+ X86_64h => ( 10 , 8 ) ,
196
+ _ => ( 10 , 7 ) ,
197
+ }
187
198
}
188
199
189
200
fn macos_deployment_target ( arch : Arch ) -> ( u32 , u32 ) {
@@ -227,7 +238,7 @@ fn link_env_remove(arch: Arch, os: &'static str) -> StaticCow<[StaticCow<str>]>
227
238
// of the linking environment that's wrong and reversed.
228
239
match arch {
229
240
Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | I686 | X86_64 | X86_64_sim
230
- | Arm64_sim => {
241
+ | X86_64h | Arm64_sim => {
231
242
cvs ! [ "MACOSX_DEPLOYMENT_TARGET" ]
232
243
}
233
244
X86_64_macabi | Arm64_macabi => cvs ! [ "IPHONEOS_DEPLOYMENT_TARGET" ] ,
0 commit comments