@@ -41,42 +41,9 @@ const Blake3 = std.crypto.hash.Blake3;
41
41
42
42
const LibCTarget = struct {
43
43
name : []const u8 ,
44
- arch : MultiArch ,
45
- abi : MultiAbi ,
46
- };
47
-
48
- const MultiArch = union (enum ) {
49
- aarch64 ,
50
- arm ,
51
- x86_64 ,
52
- specific : Arch ,
53
-
54
- fn eql (a : MultiArch , b : MultiArch ) bool {
55
- if (@intFromEnum (a ) != @intFromEnum (b ))
56
- return false ;
57
- if (a != .specific )
58
- return true ;
59
- return a .specific == b .specific ;
60
- }
61
- };
62
-
63
- const MultiAbi = union (enum ) {
64
- musl ,
65
- specific : Abi ,
66
-
67
- fn eql (a : MultiAbi , b : MultiAbi ) bool {
68
- if (@intFromEnum (a ) != @intFromEnum (b ))
69
- return false ;
70
- if (std .meta .Tag (MultiAbi )(a ) != .specific )
71
- return true ;
72
- return a .specific == b .specific ;
73
- }
74
- };
75
-
76
- const targets_dirs = &[_ ][]const u8 {
77
- "aarch64-linux-ohos" ,
78
- "arm-linux-ohos" ,
79
- "x86_64-linux-ohos" ,
44
+ arch : Arch ,
45
+ abi : Abi ,
46
+ abi_name : []const u8 ,
80
47
};
81
48
82
49
fn is_in_array (value : []const u8 , array : []const []const u8 ) bool {
@@ -89,21 +56,10 @@ fn is_in_array(value: []const u8, array: []const []const u8) bool {
89
56
}
90
57
91
58
const musl_targets = [_ ]LibCTarget {
92
- LibCTarget {
93
- .name = "aarch64" ,
94
- .arch = MultiArch .aarch64 ,
95
- .abi = MultiAbi .musl ,
96
- },
97
- LibCTarget {
98
- .name = "arm" ,
99
- .arch = MultiArch .arm ,
100
- .abi = MultiAbi .musl ,
101
- },
102
- LibCTarget {
103
- .name = "x86_64" ,
104
- .arch = MultiArch .x86_64 ,
105
- .abi = MultiAbi .musl ,
106
- },
59
+ LibCTarget { .name = "aarch64" , .arch = Arch .aarch64 , .abi = Abi .ohos , .abi_name = "ohos" },
60
+ // Note: for older version of zig, ohoseabi is not exist.
61
+ LibCTarget { .name = "arm" , .arch = Arch .arm , .abi = Abi .ohoseabi , .abi_name = "ohoseabi" },
62
+ LibCTarget { .name = "x86_64" , .arch = Arch .x86_64 , .abi = Abi .ohos , .abi_name = "ohos" },
107
63
};
108
64
109
65
const Contents = struct {
@@ -294,14 +250,10 @@ pub fn main() !void {
294
250
var ohos_common_content = HashToContents .init (allocator );
295
251
296
252
for (musl_targets ) | libc_target | {
297
- var abi : []const u8 = "ohos" ;
298
- if (std .mem .eql (u8 , libc_target .name , "arm" )) {
299
- abi = "ohoseabi" ;
300
- }
301
253
const target = try std .fmt .allocPrint (allocator , "{s}-{s}-{s}" , .{
302
254
libc_target .name ,
303
255
"linux" ,
304
- abi ,
256
+ libc_target . abi_name ,
305
257
});
306
258
307
259
const arch_generic_hash_content = generateGenericFileMap (allocator , &[_ ][]const u8 { generic_musl_libc_dir , "arch" , libc_target .name }) catch | err | {
0 commit comments