authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-11-25 17:25:06-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-11-25 17:25:06-05:00
logcb38bd0a1436bd18de8ed57c45ffc890c8ddfb78
treec695fdb19e30581b8227ab286ce0a3b35971f34c
parent35d65cceb8aa4360accc0db30b2b1448159e7d26
signaturelock-open Commit is signed but in an unrecognized format.

rename std.heap.direct_allocator to std.heap.page_allocator

std.heap.direct_allocator is still available for now but it is marked deprecated.

28 files changed, 110 insertions(+), 104 deletions(-)

doc/docgen.zig+1-1
......@@ -16,7 +16,7 @@ const tmp_dir_name = "docgen_tmp";
1616const test_out_path = tmp_dir_name ++ fs.path.sep_str ++ "test" ++ exe_ext;
1717
1818pub fn main() !void {
19 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
19 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
2020 defer arena.deinit();
2121
2222 const allocator = &arena.allocator;
doc/langref.html.in+4-4
......@@ -6428,7 +6428,7 @@ fn amainWrap() void {
64286428}
64296429
64306430fn amain() !void {
6431 const allocator = std.heap.direct_allocator;
6431 const allocator = std.heap.page_allocator;
64326432 var download_frame = async fetchUrl(allocator, "https://example.com/");
64336433 var awaited_download_frame = false;
64346434 errdefer if (!awaited_download_frame) {
......@@ -6498,7 +6498,7 @@ fn amainWrap() void {
64986498}
64996499
65006500fn amain() !void {
6501 const allocator = std.heap.direct_allocator;
6501 const allocator = std.heap.page_allocator;
65026502 var download_frame = async fetchUrl(allocator, "https://example.com/");
65036503 var awaited_download_frame = false;
65046504 errdefer if (!awaited_download_frame) {
......@@ -7315,7 +7315,7 @@ test "field access by string" {
73157315const std = @import("std");
73167316
73177317test "heap allocated frame" {
7318 const frame = try std.heap.direct_allocator.create(@Frame(func));
7318 const frame = try std.heap.page_allocator.create(@Frame(func));
73197319 frame.* = async func();
73207320}
73217321
......@@ -9341,7 +9341,7 @@ fn concat(allocator: *Allocator, a: []const u8, b: []const u8) ![]u8 {
93419341const std = @import("std");
93429342
93439343pub fn main() !void {
9344 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
9344 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
93459345 defer arena.deinit();
93469346
93479347 const allocator = &arena.allocator;
lib/std/atomic/queue.zig+2-2
......@@ -152,8 +152,8 @@ const puts_per_thread = 500;
152152const put_thread_count = 3;
153153
154154test "std.atomic.Queue" {
155 var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024);
156 defer std.heap.direct_allocator.free(plenty_of_memory);
155 var plenty_of_memory = try std.heap.page_allocator.alloc(u8, 300 * 1024);
156 defer std.heap.page_allocator.free(plenty_of_memory);
157157
158158 var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
159159 var a = &fixed_buffer_allocator.allocator;
lib/std/atomic/stack.zig+2-2
......@@ -86,8 +86,8 @@ const puts_per_thread = 500;
8686const put_thread_count = 3;
8787
8888test "std.atomic.stack" {
89 var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024);
90 defer std.heap.direct_allocator.free(plenty_of_memory);
89 var plenty_of_memory = try std.heap.page_allocator.alloc(u8, 300 * 1024);
90 defer std.heap.page_allocator.free(plenty_of_memory);
9191
9292 var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
9393 var a = &fixed_buffer_allocator.allocator;
lib/std/buf_map.zig+1-1
......@@ -83,7 +83,7 @@ pub const BufMap = struct {
8383};
8484
8585test "BufMap" {
86 var bufmap = BufMap.init(std.heap.direct_allocator);
86 var bufmap = BufMap.init(std.heap.page_allocator);
8787 defer bufmap.deinit();
8888
8989 try bufmap.set("x", "1");
lib/std/buf_set.zig+1-1
......@@ -65,7 +65,7 @@ pub const BufSet = struct {
6565};
6666
6767test "BufSet" {
68 var bufset = BufSet.init(std.heap.direct_allocator);
68 var bufset = BufSet.init(std.heap.page_allocator);
6969 defer bufset.deinit();
7070
7171 try bufset.put("x");
lib/std/build.zig+1-1
......@@ -969,7 +969,7 @@ pub const Builder = struct {
969969};
970970
971971test "builder.findProgram compiles" {
972 const builder = try Builder.create(std.heap.direct_allocator, "zig", "zig-cache", "zig-cache");
972 const builder = try Builder.create(std.heap.page_allocator, "zig", "zig-cache", "zig-cache");
973973 _ = builder.findProgram([_][]const u8{}, [_][]const u8{}) catch null;
974974}
975975
lib/std/debug.zig+1-1
......@@ -2352,7 +2352,7 @@ var debug_info_arena_allocator: std.heap.ArenaAllocator = undefined;
23522352fn getDebugInfoAllocator() *mem.Allocator {
23532353 if (debug_info_allocator) |a| return a;
23542354
2355 debug_info_arena_allocator = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
2355 debug_info_arena_allocator = std.heap.ArenaAllocator.init(std.heap.page_allocator);
23562356 debug_info_allocator = &debug_info_arena_allocator.allocator;
23572357 return &debug_info_arena_allocator.allocator;
23582358}
lib/std/event/fs.zig+1-1
......@@ -1306,7 +1306,7 @@ test "write a file, watch it, write it again" {
13061306 // TODO provide a way to run tests in evented I/O mode
13071307 if (!std.io.is_async) return error.SkipZigTest;
13081308
1309 const allocator = std.heap.direct_allocator;
1309 const allocator = std.heap.page_allocator;
13101310
13111311 // TODO move this into event loop too
13121312 try os.makePath(allocator, test_tmp_dir);
lib/std/event/group.zig+1-1
......@@ -115,7 +115,7 @@ test "std.event.Group" {
115115 // TODO provide a way to run tests in evented I/O mode
116116 if (!std.io.is_async) return error.SkipZigTest;
117117
118 const handle = async testGroup(std.heap.direct_allocator);
118 const handle = async testGroup(std.heap.page_allocator);
119119}
120120
121121async fn testGroup(allocator: *Allocator) void {
lib/std/event/loop.zig+1-1
......@@ -129,7 +129,7 @@ pub const Loop = struct {
129129 /// max(thread_count - 1, 0)
130130 pub fn initThreadPool(self: *Loop, thread_count: usize) !void {
131131 // TODO: https://github.com/ziglang/zig/issues/3539
132 const allocator = std.heap.direct_allocator;
132 const allocator = std.heap.page_allocator;
133133 self.* = Loop{
134134 .pending_event_count = 1,
135135 .allocator = allocator,
lib/std/event/rwlock.zig+1-1
......@@ -220,7 +220,7 @@ test "std.event.RwLock" {
220220 var lock = RwLock.init();
221221 defer lock.deinit();
222222
223 const handle = testLock(std.heap.direct_allocator, &lock);
223 const handle = testLock(std.heap.page_allocator, &lock);
224224
225225 const expected_result = [1]i32{shared_it_count * @intCast(i32, shared_test_data.len)} ** shared_test_data.len;
226226 testing.expectEqualSlices(i32, expected_result, shared_test_data);
lib/std/hash/auto_hash.zig+5-5
......@@ -235,8 +235,8 @@ test "hash pointer" {
235235test "hash slice shallow" {
236236 // Allocate one array dynamically so that we're assured it is not merged
237237 // with the other by the optimization passes.
238 const array1 = try std.heap.direct_allocator.create([6]u32);
239 defer std.heap.direct_allocator.destroy(array1);
238 const array1 = try std.heap.page_allocator.create([6]u32);
239 defer std.heap.page_allocator.destroy(array1);
240240 array1.* = [_]u32{ 1, 2, 3, 4, 5, 6 };
241241 const array2 = [_]u32{ 1, 2, 3, 4, 5, 6 };
242242 const a = array1[0..];
......@@ -251,8 +251,8 @@ test "hash slice shallow" {
251251test "hash slice deep" {
252252 // Allocate one array dynamically so that we're assured it is not merged
253253 // with the other by the optimization passes.
254 const array1 = try std.heap.direct_allocator.create([6]u32);
255 defer std.heap.direct_allocator.destroy(array1);
254 const array1 = try std.heap.page_allocator.create([6]u32);
255 defer std.heap.page_allocator.destroy(array1);
256256 array1.* = [_]u32{ 1, 2, 3, 4, 5, 6 };
257257 const array2 = [_]u32{ 1, 2, 3, 4, 5, 6 };
258258 const a = array1[0..];
......@@ -279,7 +279,7 @@ test "hash struct deep" {
279279 }
280280 };
281281
282 const allocator = std.heap.direct_allocator;
282 const allocator = std.heap.page_allocator;
283283 const foo = try Foo.init(allocator, 123, 1.0, true);
284284 const bar = try Foo.init(allocator, 123, 1.0, true);
285285 const baz = try Foo.init(allocator, 123, 1.0, false);
lib/std/hash_map.zig+3-3
......@@ -414,7 +414,7 @@ pub fn HashMap(comptime K: type, comptime V: type, comptime hash: fn (key: K) u3
414414}
415415
416416test "basic hash map usage" {
417 var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator);
417 var map = AutoHashMap(i32, i32).init(std.heap.page_allocator);
418418 defer map.deinit();
419419
420420 testing.expect((try map.put(1, 11)) == null);
......@@ -458,7 +458,7 @@ test "basic hash map usage" {
458458}
459459
460460test "iterator hash map" {
461 var reset_map = AutoHashMap(i32, i32).init(std.heap.direct_allocator);
461 var reset_map = AutoHashMap(i32, i32).init(std.heap.page_allocator);
462462 defer reset_map.deinit();
463463
464464 try reset_map.putNoClobber(1, 11);
......@@ -504,7 +504,7 @@ test "iterator hash map" {
504504}
505505
506506test "ensure capacity" {
507 var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator);
507 var map = AutoHashMap(i32, i32).init(std.heap.page_allocator);
508508 defer map.deinit();
509509
510510 try map.ensureCapacity(20);
lib/std/heap.zig+13-10
......@@ -33,13 +33,16 @@ fn cShrink(self: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new
3333
3434/// This allocator makes a syscall directly for every allocation and free.
3535/// Thread-safe and lock-free.
36pub const direct_allocator = &direct_allocator_state;
37var direct_allocator_state = Allocator{
38 .reallocFn = DirectAllocator.realloc,
39 .shrinkFn = DirectAllocator.shrink,
36pub const page_allocator = &page_allocator_state;
37var page_allocator_state = Allocator{
38 .reallocFn = PageAllocator.realloc,
39 .shrinkFn = PageAllocator.shrink,
4040};
4141
42const DirectAllocator = struct {
42/// Deprecated. Use `page_allocator`.
43pub const direct_allocator = page_allocator;
44
45const PageAllocator = struct {
4346 fn alloc(allocator: *Allocator, n: usize, alignment: u29) error{OutOfMemory}![]u8 {
4447 if (n == 0) return &[0]u8{};
4548
......@@ -484,7 +487,7 @@ pub const FixedBufferAllocator = struct {
484487 }
485488};
486489
487// FIXME: Exposed LLVM intrinsics is a bug
490// TODO Exposed LLVM intrinsics is a bug
488491// See: https://github.com/ziglang/zig/issues/2291
489492extern fn @"llvm.wasm.memory.size.i32"(u32) u32;
490493extern fn @"llvm.wasm.memory.grow.i32"(u32, u32) i32;
......@@ -725,8 +728,8 @@ test "c_allocator" {
725728 }
726729}
727730
728test "DirectAllocator" {
729 const allocator = direct_allocator;
731test "PageAllocator" {
732 const allocator = page_allocator;
730733 try testAllocator(allocator);
731734 try testAllocatorAligned(allocator, 16);
732735 try testAllocatorLargeAlignment(allocator);
......@@ -735,7 +738,7 @@ test "DirectAllocator" {
735738 if (builtin.os == .windows) {
736739 // Trying really large alignment. As mentionned in the implementation,
737740 // VirtualAlloc returns 64K aligned addresses. We want to make sure
738 // DirectAllocator works beyond that, as it's not tested by
741 // PageAllocator works beyond that, as it's not tested by
739742 // `testAllocatorLargeAlignment`.
740743 const slice = try allocator.alignedAlloc(u8, 1 << 20, 128);
741744 slice[0] = 0x12;
......@@ -758,7 +761,7 @@ test "HeapAllocator" {
758761}
759762
760763test "ArenaAllocator" {
761 var arena_allocator = ArenaAllocator.init(direct_allocator);
764 var arena_allocator = ArenaAllocator.init(page_allocator);
762765 defer arena_allocator.deinit();
763766
764767 try testAllocator(&arena_allocator.allocator);
lib/std/mutex.zig+2-2
......@@ -125,8 +125,8 @@ const TestContext = struct {
125125};
126126
127127test "std.Mutex" {
128 var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024);
129 defer std.heap.direct_allocator.free(plenty_of_memory);
128 var plenty_of_memory = try std.heap.page_allocator.alloc(u8, 300 * 1024);
129 defer std.heap.page_allocator.free(plenty_of_memory);
130130
131131 var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
132132 var a = &fixed_buffer_allocator.allocator;
lib/std/os/test.zig+2-2
......@@ -234,6 +234,6 @@ test "pipe" {
234234}
235235
236236test "argsAlloc" {
237 var args = try std.process.argsAlloc(std.heap.direct_allocator);
238 std.heap.direct_allocator.free(args);
237 var args = try std.process.argsAlloc(std.heap.page_allocator);
238 std.process.argsFree(std.heap.page_allocator, args);
239239}
lib/std/packed_int_array.zig+2-2
......@@ -622,7 +622,7 @@ test "PackedIntArray at end of available memory" {
622622 p: PackedArray,
623623 };
624624
625 const allocator = std.heap.direct_allocator;
625 const allocator = std.heap.page_allocator;
626626
627627 var pad = try allocator.create(Padded);
628628 defer allocator.destroy(pad);
......@@ -636,7 +636,7 @@ test "PackedIntSlice at end of available memory" {
636636 }
637637 const PackedSlice = PackedIntSlice(u11);
638638
639 const allocator = std.heap.direct_allocator;
639 const allocator = std.heap.page_allocator;
640640
641641 var page = try allocator.alloc(u8, std.mem.page_size);
642642 defer allocator.free(page);
lib/std/segmented_list.zig+1-1
......@@ -339,7 +339,7 @@ pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type
339339}
340340
341341test "std.SegmentedList" {
342 var a = std.heap.direct_allocator;
342 var a = std.heap.page_allocator;
343343
344344 try testSegmentedList(0, a);
345345 try testSegmentedList(1, a);
lib/std/special/build_runner.zig+1-1
......@@ -17,7 +17,7 @@ pub fn main() !void {
1717 // one shot program. We don't need to waste time freeing memory and finding places to squish
1818 // bytes into. So we free everything all at once at the very end.
1919
20 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
20 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
2121 defer arena.deinit();
2222
2323 const allocator = &arena.allocator;
lib/std/unicode/throughput_test.zig+1-1
......@@ -4,7 +4,7 @@ const std = @import("std");
44pub fn main() !void {
55 const stdout = &std.io.getStdOut().outStream().stream;
66
7 const args = try std.process.argsAlloc(std.heap.direct_allocator);
7 const args = try std.process.argsAlloc(std.heap.page_allocator);
88
99 @fence(.SeqCst);
1010 var timer = try std.time.Timer.start();
src-self-hosted/dep_tokenizer.zig+1-1
......@@ -837,7 +837,7 @@ test "error prereq - continuation expecting end-of-line" {
837837
838838// - tokenize input, emit textual representation, and compare to expect
839839fn depTokenizer(input: []const u8, expect: []const u8) !void {
840 var arena_allocator = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
840 var arena_allocator = std.heap.ArenaAllocator.init(std.heap.page_allocator);
841841 const arena = &arena_allocator.allocator;
842842 defer arena_allocator.deinit();
843843
test/cli.zig+1-1
......@@ -8,7 +8,7 @@ const ChildProcess = std.ChildProcess;
88var a: *std.mem.Allocator = undefined;
99
1010pub fn main() !void {
11 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
11 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
1212 defer arena.deinit();
1313
1414 var arg_it = process.args();
test/stage1/behavior/async_fn.zig+13-10
......@@ -410,8 +410,8 @@ test "heap allocated async function frame" {
410410 var x: i32 = 42;
411411
412412 fn doTheTest() !void {
413 const frame = try std.heap.direct_allocator.create(@Frame(someFunc));
414 defer std.heap.direct_allocator.destroy(frame);
413 const frame = try std.heap.page_allocator.create(@Frame(someFunc));
414 defer std.heap.page_allocator.destroy(frame);
415415
416416 expect(x == 42);
417417 frame.* = async someFunc();
......@@ -671,7 +671,7 @@ fn testAsyncAwaitTypicalUsage(
671671 }
672672
673673 fn amain() !void {
674 const allocator = std.heap.direct_allocator; // TODO once we have the debug allocator, use that, so that this can detect leaks
674 const allocator = std.heap.page_allocator; // TODO once we have the debug allocator, use that, so that this can detect leaks
675675 var download_frame = async fetchUrl(allocator, "https://example.com/");
676676 var download_awaited = false;
677677 errdefer if (!download_awaited) {
......@@ -935,12 +935,12 @@ fn recursiveAsyncFunctionTest(comptime suspending_implementation: bool) type {
935935 _ = async amain(&result);
936936 return result;
937937 } else {
938 return fib(std.heap.direct_allocator, 10) catch unreachable;
938 return fib(std.heap.page_allocator, 10) catch unreachable;
939939 }
940940 }
941941
942942 fn amain(result: *u32) void {
943 var x = async fib(std.heap.direct_allocator, 10);
943 var x = async fib(std.heap.page_allocator, 10);
944944 result.* = (await x) catch unreachable;
945945 }
946946 };
......@@ -1132,7 +1132,9 @@ test "await used in expression after a fn call" {
11321132 async fn add(a: i32, b: i32) i32 {
11331133 return a + b;
11341134 }
1135 fn foo() i32 { return 1; }
1135 fn foo() i32 {
1136 return 1;
1137 }
11361138 };
11371139 _ = async S.atest();
11381140}
......@@ -1147,7 +1149,9 @@ test "async fn call used in expression after a fn call" {
11471149 async fn add(a: i32, b: i32) i32 {
11481150 return a + b;
11491151 }
1150 fn foo() i32 { return 1; }
1152 fn foo() i32 {
1153 return 1;
1154 }
11511155 };
11521156 _ = async S.atest();
11531157}
......@@ -1201,14 +1205,13 @@ test "correctly spill when returning the error union result of another async fn"
12011205 resume S.global_frame;
12021206}
12031207
1204
12051208test "spill target expr in a for loop" {
12061209 const S = struct {
12071210 var global_frame: anyframe = undefined;
12081211
12091212 fn doTheTest() void {
12101213 var foo = Foo{
1211 .slice = [_]i32{1, 2},
1214 .slice = [_]i32{ 1, 2 },
12121215 };
12131216 expect(atest(&foo) == 3);
12141217 }
......@@ -1239,7 +1242,7 @@ test "spill target expr in a for loop, with a var decl in the loop body" {
12391242
12401243 fn doTheTest() void {
12411244 var foo = Foo{
1242 .slice = [_]i32{1, 2},
1245 .slice = [_]i32{ 1, 2 },
12431246 };
12441247 expect(atest(&foo) == 3);
12451248 }
test/standalone/brace_expansion/main.zig+1-1
......@@ -182,7 +182,7 @@ pub fn main() !void {
182182 const stdin_file = io.getStdIn();
183183 const stdout_file = io.getStdOut();
184184
185 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
185 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
186186 defer arena.deinit();
187187
188188 global_allocator = &arena.allocator;
tools/merge_anal_dumps.zig+1-1
......@@ -6,7 +6,7 @@ const fieldIndex = std.meta.fieldIndex;
66const TypeId = builtin.TypeId;
77
88pub fn main() anyerror!void {
9 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
9 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
1010 defer arena.deinit();
1111
1212 const allocator = &arena.allocator;
tools/process_headers.zig+45-45
......@@ -56,113 +56,113 @@ const MultiAbi = union(enum) {
5656const glibc_targets = [_]LibCTarget{
5757 LibCTarget{
5858 .name = "aarch64_be-linux-gnu",
59 .arch = MultiArch {.specific = Arch.aarch64_be},
60 .abi = MultiAbi {.specific = Abi.gnu},
59 .arch = MultiArch{ .specific = Arch.aarch64_be },
60 .abi = MultiAbi{ .specific = Abi.gnu },
6161 },
6262 LibCTarget{
6363 .name = "aarch64-linux-gnu",
64 .arch = MultiArch {.specific = Arch.aarch64},
65 .abi = MultiAbi {.specific = Abi.gnu},
64 .arch = MultiArch{ .specific = Arch.aarch64 },
65 .abi = MultiAbi{ .specific = Abi.gnu },
6666 },
6767 LibCTarget{
6868 .name = "armeb-linux-gnueabi",
69 .arch = MultiArch {.specific = Arch.armeb},
70 .abi = MultiAbi {.specific = Abi.gnueabi},
69 .arch = MultiArch{ .specific = Arch.armeb },
70 .abi = MultiAbi{ .specific = Abi.gnueabi },
7171 },
7272 LibCTarget{
7373 .name = "armeb-linux-gnueabihf",
74 .arch = MultiArch {.specific = Arch.armeb},
75 .abi = MultiAbi {.specific = Abi.gnueabihf},
74 .arch = MultiArch{ .specific = Arch.armeb },
75 .abi = MultiAbi{ .specific = Abi.gnueabihf },
7676 },
7777 LibCTarget{
7878 .name = "arm-linux-gnueabi",
79 .arch = MultiArch {.specific = Arch.arm},
80 .abi = MultiAbi {.specific = Abi.gnueabi},
79 .arch = MultiArch{ .specific = Arch.arm },
80 .abi = MultiAbi{ .specific = Abi.gnueabi },
8181 },
8282 LibCTarget{
8383 .name = "arm-linux-gnueabihf",
84 .arch = MultiArch {.specific = Arch.arm},
85 .abi = MultiAbi {.specific = Abi.gnueabihf},
84 .arch = MultiArch{ .specific = Arch.arm },
85 .abi = MultiAbi{ .specific = Abi.gnueabihf },
8686 },
8787 LibCTarget{
8888 .name = "i686-linux-gnu",
89 .arch = MultiArch {.specific = Arch.i386},
90 .abi = MultiAbi {.specific = Abi.gnu},
89 .arch = MultiArch{ .specific = Arch.i386 },
90 .abi = MultiAbi{ .specific = Abi.gnu },
9191 },
9292 LibCTarget{
9393 .name = "mips64el-linux-gnu-n32",
94 .arch = MultiArch {.specific = Arch.mips64el},
95 .abi = MultiAbi {.specific = Abi.gnuabin32},
94 .arch = MultiArch{ .specific = Arch.mips64el },
95 .abi = MultiAbi{ .specific = Abi.gnuabin32 },
9696 },
9797 LibCTarget{
9898 .name = "mips64el-linux-gnu-n64",
99 .arch = MultiArch {.specific = Arch.mips64el},
100 .abi = MultiAbi {.specific = Abi.gnuabi64},
99 .arch = MultiArch{ .specific = Arch.mips64el },
100 .abi = MultiAbi{ .specific = Abi.gnuabi64 },
101101 },
102102 LibCTarget{
103103 .name = "mips64-linux-gnu-n32",
104 .arch = MultiArch {.specific = Arch.mips64},
105 .abi = MultiAbi {.specific = Abi.gnuabin32},
104 .arch = MultiArch{ .specific = Arch.mips64 },
105 .abi = MultiAbi{ .specific = Abi.gnuabin32 },
106106 },
107107 LibCTarget{
108108 .name = "mips64-linux-gnu-n64",
109 .arch = MultiArch {.specific = Arch.mips64},
110 .abi = MultiAbi {.specific = Abi.gnuabi64},
109 .arch = MultiArch{ .specific = Arch.mips64 },
110 .abi = MultiAbi{ .specific = Abi.gnuabi64 },
111111 },
112112 LibCTarget{
113113 .name = "mipsel-linux-gnu",
114 .arch = MultiArch {.specific = Arch.mipsel},
115 .abi = MultiAbi {.specific = Abi.gnu},
114 .arch = MultiArch{ .specific = Arch.mipsel },
115 .abi = MultiAbi{ .specific = Abi.gnu },
116116 },
117117 LibCTarget{
118118 .name = "mips-linux-gnu",
119 .arch = MultiArch {.specific = Arch.mips},
120 .abi = MultiAbi {.specific = Abi.gnu},
119 .arch = MultiArch{ .specific = Arch.mips },
120 .abi = MultiAbi{ .specific = Abi.gnu },
121121 },
122122 LibCTarget{
123123 .name = "powerpc64le-linux-gnu",
124 .arch = MultiArch {.specific = Arch.powerpc64le},
125 .abi = MultiAbi {.specific = Abi.gnu},
124 .arch = MultiArch{ .specific = Arch.powerpc64le },
125 .abi = MultiAbi{ .specific = Abi.gnu },
126126 },
127127 LibCTarget{
128128 .name = "powerpc64-linux-gnu",
129 .arch = MultiArch {.specific = Arch.powerpc64},
130 .abi = MultiAbi {.specific = Abi.gnu},
129 .arch = MultiArch{ .specific = Arch.powerpc64 },
130 .abi = MultiAbi{ .specific = Abi.gnu },
131131 },
132132 LibCTarget{
133133 .name = "powerpc-linux-gnu",
134 .arch = MultiArch {.specific = Arch.powerpc},
135 .abi = MultiAbi {.specific = Abi.gnu},
134 .arch = MultiArch{ .specific = Arch.powerpc },
135 .abi = MultiAbi{ .specific = Abi.gnu },
136136 },
137137 LibCTarget{
138138 .name = "riscv64-linux-gnu-rv64imac-lp64",
139 .arch = MultiArch {.specific = Arch.riscv64},
140 .abi = MultiAbi {.specific = Abi.gnu},
139 .arch = MultiArch{ .specific = Arch.riscv64 },
140 .abi = MultiAbi{ .specific = Abi.gnu },
141141 },
142142 LibCTarget{
143143 .name = "s390x-linux-gnu",
144 .arch = MultiArch {.specific = Arch.s390x},
145 .abi = MultiAbi {.specific = Abi.gnu},
144 .arch = MultiArch{ .specific = Arch.s390x },
145 .abi = MultiAbi{ .specific = Abi.gnu },
146146 },
147147 LibCTarget{
148148 .name = "sparc64-linux-gnu",
149 .arch = MultiArch {.specific = Arch.sparc},
150 .abi = MultiAbi {.specific = Abi.gnu},
149 .arch = MultiArch{ .specific = Arch.sparc },
150 .abi = MultiAbi{ .specific = Abi.gnu },
151151 },
152152 LibCTarget{
153153 .name = "sparcv9-linux-gnu",
154 .arch = MultiArch {.specific = Arch.sparcv9},
155 .abi = MultiAbi {.specific = Abi.gnu},
154 .arch = MultiArch{ .specific = Arch.sparcv9 },
155 .abi = MultiAbi{ .specific = Abi.gnu },
156156 },
157157 LibCTarget{
158158 .name = "x86_64-linux-gnu",
159 .arch = MultiArch {.specific = Arch.x86_64},
160 .abi = MultiAbi {.specific = Abi.gnu},
159 .arch = MultiArch{ .specific = Arch.x86_64 },
160 .abi = MultiAbi{ .specific = Abi.gnu },
161161 },
162162 LibCTarget{
163163 .name = "x86_64-linux-gnu-x32",
164 .arch = MultiArch {.specific = Arch.x86_64},
165 .abi = MultiAbi {.specific = Abi.gnux32},
164 .arch = MultiArch{ .specific = Arch.x86_64 },
165 .abi = MultiAbi{ .specific = Abi.gnux32 },
166166 },
167167};
168168
......@@ -258,7 +258,7 @@ const LibCVendor = enum {
258258};
259259
260260pub fn main() !void {
261 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
261 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
262262 const allocator = &arena.allocator;
263263 const args = try std.process.argsAlloc(allocator);
264264 var search_paths = std.ArrayList([]const u8).init(allocator);
tools/update_glibc.zig+1-1
......@@ -131,7 +131,7 @@ const Function = struct {
131131};
132132
133133pub fn main() !void {
134 var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
134 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
135135 const allocator = &arena.allocator;
136136 const args = try std.process.argsAlloc(allocator);
137137 const in_glibc_dir = args[1]; // path to the unzipped tarball of glibc, e.g. ~/downloads/glibc-2.25