From cb38bd0a1436bd18de8ed57c45ffc890c8ddfb78 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 25 Nov 2019 17:25:06 -0500 Subject: [PATCH] rename std.heap.direct_allocator to std.heap.page_allocator std.heap.direct_allocator is still available for now but it is marked deprecated. --- doc/docgen.zig | 2 +- doc/langref.html.in | 8 +-- lib/std/atomic/queue.zig | 4 +- lib/std/atomic/stack.zig | 4 +- lib/std/buf_map.zig | 2 +- lib/std/buf_set.zig | 2 +- lib/std/build.zig | 2 +- lib/std/debug.zig | 2 +- lib/std/event/fs.zig | 2 +- lib/std/event/group.zig | 2 +- lib/std/event/loop.zig | 2 +- lib/std/event/rwlock.zig | 2 +- lib/std/hash/auto_hash.zig | 10 +-- lib/std/hash_map.zig | 6 +- lib/std/heap.zig | 23 +++--- lib/std/mutex.zig | 4 +- lib/std/os/test.zig | 4 +- lib/std/packed_int_array.zig | 4 +- lib/std/segmented_list.zig | 2 +- lib/std/special/build_runner.zig | 2 +- lib/std/unicode/throughput_test.zig | 2 +- src-self-hosted/dep_tokenizer.zig | 2 +- test/cli.zig | 2 +- test/stage1/behavior/async_fn.zig | 23 +++--- test/standalone/brace_expansion/main.zig | 2 +- tools/merge_anal_dumps.zig | 2 +- tools/process_headers.zig | 90 ++++++++++++------------ tools/update_glibc.zig | 2 +- 28 files changed, 110 insertions(+), 104 deletions(-) diff --git a/doc/docgen.zig b/doc/docgen.zig index bf53bed717..5d216a1914 100644 --- a/doc/docgen.zig +++ b/doc/docgen.zig @@ -16,7 +16,7 @@ const tmp_dir_name = "docgen_tmp"; const test_out_path = tmp_dir_name ++ fs.path.sep_str ++ "test" ++ exe_ext; pub fn main() !void { - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); const allocator = &arena.allocator; diff --git a/doc/langref.html.in b/doc/langref.html.in index 324906c36f..f6684eb195 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -6428,7 +6428,7 @@ fn amainWrap() void { } fn amain() !void { - const allocator = std.heap.direct_allocator; + const allocator = std.heap.page_allocator; var download_frame = async fetchUrl(allocator, "https://example.com/"); var awaited_download_frame = false; errdefer if (!awaited_download_frame) { @@ -6498,7 +6498,7 @@ fn amainWrap() void { } fn amain() !void { - const allocator = std.heap.direct_allocator; + const allocator = std.heap.page_allocator; var download_frame = async fetchUrl(allocator, "https://example.com/"); var awaited_download_frame = false; errdefer if (!awaited_download_frame) { @@ -7315,7 +7315,7 @@ test "field access by string" { const std = @import("std"); test "heap allocated frame" { - const frame = try std.heap.direct_allocator.create(@Frame(func)); + const frame = try std.heap.page_allocator.create(@Frame(func)); frame.* = async func(); } @@ -9341,7 +9341,7 @@ fn concat(allocator: *Allocator, a: []const u8, b: []const u8) ![]u8 { const std = @import("std"); pub fn main() !void { - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); const allocator = &arena.allocator; diff --git a/lib/std/atomic/queue.zig b/lib/std/atomic/queue.zig index 9d6b15ff4a..53f1d99f13 100644 --- a/lib/std/atomic/queue.zig +++ b/lib/std/atomic/queue.zig @@ -152,8 +152,8 @@ const puts_per_thread = 500; const put_thread_count = 3; test "std.atomic.Queue" { - var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024); - defer std.heap.direct_allocator.free(plenty_of_memory); + var plenty_of_memory = try std.heap.page_allocator.alloc(u8, 300 * 1024); + defer std.heap.page_allocator.free(plenty_of_memory); var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory); var a = &fixed_buffer_allocator.allocator; diff --git a/lib/std/atomic/stack.zig b/lib/std/atomic/stack.zig index 4246e15985..2636b20528 100644 --- a/lib/std/atomic/stack.zig +++ b/lib/std/atomic/stack.zig @@ -86,8 +86,8 @@ const puts_per_thread = 500; const put_thread_count = 3; test "std.atomic.stack" { - var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024); - defer std.heap.direct_allocator.free(plenty_of_memory); + var plenty_of_memory = try std.heap.page_allocator.alloc(u8, 300 * 1024); + defer std.heap.page_allocator.free(plenty_of_memory); var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory); var a = &fixed_buffer_allocator.allocator; diff --git a/lib/std/buf_map.zig b/lib/std/buf_map.zig index d7aa314157..06f00608bb 100644 --- a/lib/std/buf_map.zig +++ b/lib/std/buf_map.zig @@ -83,7 +83,7 @@ pub const BufMap = struct { }; test "BufMap" { - var bufmap = BufMap.init(std.heap.direct_allocator); + var bufmap = BufMap.init(std.heap.page_allocator); defer bufmap.deinit(); try bufmap.set("x", "1"); diff --git a/lib/std/buf_set.zig b/lib/std/buf_set.zig index 1a321e89c9..7ac8136e7d 100644 --- a/lib/std/buf_set.zig +++ b/lib/std/buf_set.zig @@ -65,7 +65,7 @@ pub const BufSet = struct { }; test "BufSet" { - var bufset = BufSet.init(std.heap.direct_allocator); + var bufset = BufSet.init(std.heap.page_allocator); defer bufset.deinit(); try bufset.put("x"); diff --git a/lib/std/build.zig b/lib/std/build.zig index b124b12fef..4d2fbabcae 100644 --- a/lib/std/build.zig +++ b/lib/std/build.zig @@ -969,7 +969,7 @@ pub const Builder = struct { }; test "builder.findProgram compiles" { - const builder = try Builder.create(std.heap.direct_allocator, "zig", "zig-cache", "zig-cache"); + const builder = try Builder.create(std.heap.page_allocator, "zig", "zig-cache", "zig-cache"); _ = builder.findProgram([_][]const u8{}, [_][]const u8{}) catch null; } diff --git a/lib/std/debug.zig b/lib/std/debug.zig index dd4edf832b..9df7370ad0 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -2352,7 +2352,7 @@ var debug_info_arena_allocator: std.heap.ArenaAllocator = undefined; fn getDebugInfoAllocator() *mem.Allocator { if (debug_info_allocator) |a| return a; - debug_info_arena_allocator = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + debug_info_arena_allocator = std.heap.ArenaAllocator.init(std.heap.page_allocator); debug_info_allocator = &debug_info_arena_allocator.allocator; return &debug_info_arena_allocator.allocator; } diff --git a/lib/std/event/fs.zig b/lib/std/event/fs.zig index a4b6488344..0bbc710dfc 100644 --- a/lib/std/event/fs.zig +++ b/lib/std/event/fs.zig @@ -1306,7 +1306,7 @@ test "write a file, watch it, write it again" { // TODO provide a way to run tests in evented I/O mode if (!std.io.is_async) return error.SkipZigTest; - const allocator = std.heap.direct_allocator; + const allocator = std.heap.page_allocator; // TODO move this into event loop too try os.makePath(allocator, test_tmp_dir); diff --git a/lib/std/event/group.zig b/lib/std/event/group.zig index 0f6a892594..9feb99148b 100644 --- a/lib/std/event/group.zig +++ b/lib/std/event/group.zig @@ -115,7 +115,7 @@ test "std.event.Group" { // TODO provide a way to run tests in evented I/O mode if (!std.io.is_async) return error.SkipZigTest; - const handle = async testGroup(std.heap.direct_allocator); + const handle = async testGroup(std.heap.page_allocator); } async fn testGroup(allocator: *Allocator) void { diff --git a/lib/std/event/loop.zig b/lib/std/event/loop.zig index 44174c862c..f47663a511 100644 --- a/lib/std/event/loop.zig +++ b/lib/std/event/loop.zig @@ -129,7 +129,7 @@ pub const Loop = struct { /// max(thread_count - 1, 0) pub fn initThreadPool(self: *Loop, thread_count: usize) !void { // TODO: https://github.com/ziglang/zig/issues/3539 - const allocator = std.heap.direct_allocator; + const allocator = std.heap.page_allocator; self.* = Loop{ .pending_event_count = 1, .allocator = allocator, diff --git a/lib/std/event/rwlock.zig b/lib/std/event/rwlock.zig index ec4ab8f6d0..f4b13d008b 100644 --- a/lib/std/event/rwlock.zig +++ b/lib/std/event/rwlock.zig @@ -220,7 +220,7 @@ test "std.event.RwLock" { var lock = RwLock.init(); defer lock.deinit(); - const handle = testLock(std.heap.direct_allocator, &lock); + const handle = testLock(std.heap.page_allocator, &lock); const expected_result = [1]i32{shared_it_count * @intCast(i32, shared_test_data.len)} ** shared_test_data.len; testing.expectEqualSlices(i32, expected_result, shared_test_data); diff --git a/lib/std/hash/auto_hash.zig b/lib/std/hash/auto_hash.zig index 1df434116c..bd5479d093 100644 --- a/lib/std/hash/auto_hash.zig +++ b/lib/std/hash/auto_hash.zig @@ -235,8 +235,8 @@ test "hash pointer" { test "hash slice shallow" { // Allocate one array dynamically so that we're assured it is not merged // with the other by the optimization passes. - const array1 = try std.heap.direct_allocator.create([6]u32); - defer std.heap.direct_allocator.destroy(array1); + const array1 = try std.heap.page_allocator.create([6]u32); + defer std.heap.page_allocator.destroy(array1); array1.* = [_]u32{ 1, 2, 3, 4, 5, 6 }; const array2 = [_]u32{ 1, 2, 3, 4, 5, 6 }; const a = array1[0..]; @@ -251,8 +251,8 @@ test "hash slice shallow" { test "hash slice deep" { // Allocate one array dynamically so that we're assured it is not merged // with the other by the optimization passes. - const array1 = try std.heap.direct_allocator.create([6]u32); - defer std.heap.direct_allocator.destroy(array1); + const array1 = try std.heap.page_allocator.create([6]u32); + defer std.heap.page_allocator.destroy(array1); array1.* = [_]u32{ 1, 2, 3, 4, 5, 6 }; const array2 = [_]u32{ 1, 2, 3, 4, 5, 6 }; const a = array1[0..]; @@ -279,7 +279,7 @@ test "hash struct deep" { } }; - const allocator = std.heap.direct_allocator; + const allocator = std.heap.page_allocator; const foo = try Foo.init(allocator, 123, 1.0, true); const bar = try Foo.init(allocator, 123, 1.0, true); const baz = try Foo.init(allocator, 123, 1.0, false); diff --git a/lib/std/hash_map.zig b/lib/std/hash_map.zig index aae3b60831..8b61531cf2 100644 --- a/lib/std/hash_map.zig +++ b/lib/std/hash_map.zig @@ -414,7 +414,7 @@ pub fn HashMap(comptime K: type, comptime V: type, comptime hash: fn (key: K) u3 } test "basic hash map usage" { - var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator); + var map = AutoHashMap(i32, i32).init(std.heap.page_allocator); defer map.deinit(); testing.expect((try map.put(1, 11)) == null); @@ -458,7 +458,7 @@ test "basic hash map usage" { } test "iterator hash map" { - var reset_map = AutoHashMap(i32, i32).init(std.heap.direct_allocator); + var reset_map = AutoHashMap(i32, i32).init(std.heap.page_allocator); defer reset_map.deinit(); try reset_map.putNoClobber(1, 11); @@ -504,7 +504,7 @@ test "iterator hash map" { } test "ensure capacity" { - var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator); + var map = AutoHashMap(i32, i32).init(std.heap.page_allocator); defer map.deinit(); try map.ensureCapacity(20); diff --git a/lib/std/heap.zig b/lib/std/heap.zig index 24ab395734..dae836611e 100644 --- a/lib/std/heap.zig +++ b/lib/std/heap.zig @@ -33,13 +33,16 @@ fn cShrink(self: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new /// This allocator makes a syscall directly for every allocation and free. /// Thread-safe and lock-free. -pub const direct_allocator = &direct_allocator_state; -var direct_allocator_state = Allocator{ - .reallocFn = DirectAllocator.realloc, - .shrinkFn = DirectAllocator.shrink, +pub const page_allocator = &page_allocator_state; +var page_allocator_state = Allocator{ + .reallocFn = PageAllocator.realloc, + .shrinkFn = PageAllocator.shrink, }; -const DirectAllocator = struct { +/// Deprecated. Use `page_allocator`. +pub const direct_allocator = page_allocator; + +const PageAllocator = struct { fn alloc(allocator: *Allocator, n: usize, alignment: u29) error{OutOfMemory}![]u8 { if (n == 0) return &[0]u8{}; @@ -484,7 +487,7 @@ pub const FixedBufferAllocator = struct { } }; -// FIXME: Exposed LLVM intrinsics is a bug +// TODO Exposed LLVM intrinsics is a bug // See: https://github.com/ziglang/zig/issues/2291 extern fn @"llvm.wasm.memory.size.i32"(u32) u32; extern fn @"llvm.wasm.memory.grow.i32"(u32, u32) i32; @@ -725,8 +728,8 @@ test "c_allocator" { } } -test "DirectAllocator" { - const allocator = direct_allocator; +test "PageAllocator" { + const allocator = page_allocator; try testAllocator(allocator); try testAllocatorAligned(allocator, 16); try testAllocatorLargeAlignment(allocator); @@ -735,7 +738,7 @@ test "DirectAllocator" { if (builtin.os == .windows) { // Trying really large alignment. As mentionned in the implementation, // VirtualAlloc returns 64K aligned addresses. We want to make sure - // DirectAllocator works beyond that, as it's not tested by + // PageAllocator works beyond that, as it's not tested by // `testAllocatorLargeAlignment`. const slice = try allocator.alignedAlloc(u8, 1 << 20, 128); slice[0] = 0x12; @@ -758,7 +761,7 @@ test "HeapAllocator" { } test "ArenaAllocator" { - var arena_allocator = ArenaAllocator.init(direct_allocator); + var arena_allocator = ArenaAllocator.init(page_allocator); defer arena_allocator.deinit(); try testAllocator(&arena_allocator.allocator); diff --git a/lib/std/mutex.zig b/lib/std/mutex.zig index 669321c0f5..e8f83a4a17 100644 --- a/lib/std/mutex.zig +++ b/lib/std/mutex.zig @@ -125,8 +125,8 @@ const TestContext = struct { }; test "std.Mutex" { - var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024); - defer std.heap.direct_allocator.free(plenty_of_memory); + var plenty_of_memory = try std.heap.page_allocator.alloc(u8, 300 * 1024); + defer std.heap.page_allocator.free(plenty_of_memory); var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory); var a = &fixed_buffer_allocator.allocator; diff --git a/lib/std/os/test.zig b/lib/std/os/test.zig index 741f108eea..dd4a8e1860 100644 --- a/lib/std/os/test.zig +++ b/lib/std/os/test.zig @@ -234,6 +234,6 @@ test "pipe" { } test "argsAlloc" { - var args = try std.process.argsAlloc(std.heap.direct_allocator); - std.heap.direct_allocator.free(args); + var args = try std.process.argsAlloc(std.heap.page_allocator); + std.process.argsFree(std.heap.page_allocator, args); } diff --git a/lib/std/packed_int_array.zig b/lib/std/packed_int_array.zig index d8c77db59b..57660f23d9 100644 --- a/lib/std/packed_int_array.zig +++ b/lib/std/packed_int_array.zig @@ -622,7 +622,7 @@ test "PackedIntArray at end of available memory" { p: PackedArray, }; - const allocator = std.heap.direct_allocator; + const allocator = std.heap.page_allocator; var pad = try allocator.create(Padded); defer allocator.destroy(pad); @@ -636,7 +636,7 @@ test "PackedIntSlice at end of available memory" { } const PackedSlice = PackedIntSlice(u11); - const allocator = std.heap.direct_allocator; + const allocator = std.heap.page_allocator; var page = try allocator.alloc(u8, std.mem.page_size); defer allocator.free(page); diff --git a/lib/std/segmented_list.zig b/lib/std/segmented_list.zig index 7db1535755..e74b17dd5c 100644 --- a/lib/std/segmented_list.zig +++ b/lib/std/segmented_list.zig @@ -339,7 +339,7 @@ pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type } test "std.SegmentedList" { - var a = std.heap.direct_allocator; + var a = std.heap.page_allocator; try testSegmentedList(0, a); try testSegmentedList(1, a); diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig index fdf5193c03..27d3283a3c 100644 --- a/lib/std/special/build_runner.zig +++ b/lib/std/special/build_runner.zig @@ -17,7 +17,7 @@ pub fn main() !void { // one shot program. We don't need to waste time freeing memory and finding places to squish // bytes into. So we free everything all at once at the very end. - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); const allocator = &arena.allocator; diff --git a/lib/std/unicode/throughput_test.zig b/lib/std/unicode/throughput_test.zig index 8122e537ed..f76f14b3ac 100644 --- a/lib/std/unicode/throughput_test.zig +++ b/lib/std/unicode/throughput_test.zig @@ -4,7 +4,7 @@ const std = @import("std"); pub fn main() !void { const stdout = &std.io.getStdOut().outStream().stream; - const args = try std.process.argsAlloc(std.heap.direct_allocator); + const args = try std.process.argsAlloc(std.heap.page_allocator); @fence(.SeqCst); var timer = try std.time.Timer.start(); diff --git a/src-self-hosted/dep_tokenizer.zig b/src-self-hosted/dep_tokenizer.zig index f802765bc0..1a6d54f639 100644 --- a/src-self-hosted/dep_tokenizer.zig +++ b/src-self-hosted/dep_tokenizer.zig @@ -837,7 +837,7 @@ test "error prereq - continuation expecting end-of-line" { // - tokenize input, emit textual representation, and compare to expect fn depTokenizer(input: []const u8, expect: []const u8) !void { - var arena_allocator = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena_allocator = std.heap.ArenaAllocator.init(std.heap.page_allocator); const arena = &arena_allocator.allocator; defer arena_allocator.deinit(); diff --git a/test/cli.zig b/test/cli.zig index e6d8d08e84..0820870412 100644 --- a/test/cli.zig +++ b/test/cli.zig @@ -8,7 +8,7 @@ const ChildProcess = std.ChildProcess; var a: *std.mem.Allocator = undefined; pub fn main() !void { - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); var arg_it = process.args(); diff --git a/test/stage1/behavior/async_fn.zig b/test/stage1/behavior/async_fn.zig index f44ca541eb..67411601da 100644 --- a/test/stage1/behavior/async_fn.zig +++ b/test/stage1/behavior/async_fn.zig @@ -410,8 +410,8 @@ test "heap allocated async function frame" { var x: i32 = 42; fn doTheTest() !void { - const frame = try std.heap.direct_allocator.create(@Frame(someFunc)); - defer std.heap.direct_allocator.destroy(frame); + const frame = try std.heap.page_allocator.create(@Frame(someFunc)); + defer std.heap.page_allocator.destroy(frame); expect(x == 42); frame.* = async someFunc(); @@ -671,7 +671,7 @@ fn testAsyncAwaitTypicalUsage( } fn amain() !void { - const allocator = std.heap.direct_allocator; // TODO once we have the debug allocator, use that, so that this can detect leaks + const allocator = std.heap.page_allocator; // TODO once we have the debug allocator, use that, so that this can detect leaks var download_frame = async fetchUrl(allocator, "https://example.com/"); var download_awaited = false; errdefer if (!download_awaited) { @@ -935,12 +935,12 @@ fn recursiveAsyncFunctionTest(comptime suspending_implementation: bool) type { _ = async amain(&result); return result; } else { - return fib(std.heap.direct_allocator, 10) catch unreachable; + return fib(std.heap.page_allocator, 10) catch unreachable; } } fn amain(result: *u32) void { - var x = async fib(std.heap.direct_allocator, 10); + var x = async fib(std.heap.page_allocator, 10); result.* = (await x) catch unreachable; } }; @@ -1132,7 +1132,9 @@ test "await used in expression after a fn call" { async fn add(a: i32, b: i32) i32 { return a + b; } - fn foo() i32 { return 1; } + fn foo() i32 { + return 1; + } }; _ = async S.atest(); } @@ -1147,7 +1149,9 @@ test "async fn call used in expression after a fn call" { async fn add(a: i32, b: i32) i32 { return a + b; } - fn foo() i32 { return 1; } + fn foo() i32 { + return 1; + } }; _ = async S.atest(); } @@ -1201,14 +1205,13 @@ test "correctly spill when returning the error union result of another async fn" resume S.global_frame; } - test "spill target expr in a for loop" { const S = struct { var global_frame: anyframe = undefined; fn doTheTest() void { var foo = Foo{ - .slice = [_]i32{1, 2}, + .slice = [_]i32{ 1, 2 }, }; expect(atest(&foo) == 3); } @@ -1239,7 +1242,7 @@ test "spill target expr in a for loop, with a var decl in the loop body" { fn doTheTest() void { var foo = Foo{ - .slice = [_]i32{1, 2}, + .slice = [_]i32{ 1, 2 }, }; expect(atest(&foo) == 3); } diff --git a/test/standalone/brace_expansion/main.zig b/test/standalone/brace_expansion/main.zig index e291f2313b..cbb328541e 100644 --- a/test/standalone/brace_expansion/main.zig +++ b/test/standalone/brace_expansion/main.zig @@ -182,7 +182,7 @@ pub fn main() !void { const stdin_file = io.getStdIn(); const stdout_file = io.getStdOut(); - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); global_allocator = &arena.allocator; diff --git a/tools/merge_anal_dumps.zig b/tools/merge_anal_dumps.zig index 32c1b760ba..c62b8aa848 100644 --- a/tools/merge_anal_dumps.zig +++ b/tools/merge_anal_dumps.zig @@ -6,7 +6,7 @@ const fieldIndex = std.meta.fieldIndex; const TypeId = builtin.TypeId; pub fn main() anyerror!void { - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); const allocator = &arena.allocator; diff --git a/tools/process_headers.zig b/tools/process_headers.zig index 667da5f7c9..ffa2bdd8ef 100644 --- a/tools/process_headers.zig +++ b/tools/process_headers.zig @@ -56,113 +56,113 @@ const MultiAbi = union(enum) { const glibc_targets = [_]LibCTarget{ LibCTarget{ .name = "aarch64_be-linux-gnu", - .arch = MultiArch {.specific = Arch.aarch64_be}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.aarch64_be }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "aarch64-linux-gnu", - .arch = MultiArch {.specific = Arch.aarch64}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.aarch64 }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "armeb-linux-gnueabi", - .arch = MultiArch {.specific = Arch.armeb}, - .abi = MultiAbi {.specific = Abi.gnueabi}, + .arch = MultiArch{ .specific = Arch.armeb }, + .abi = MultiAbi{ .specific = Abi.gnueabi }, }, LibCTarget{ .name = "armeb-linux-gnueabihf", - .arch = MultiArch {.specific = Arch.armeb}, - .abi = MultiAbi {.specific = Abi.gnueabihf}, + .arch = MultiArch{ .specific = Arch.armeb }, + .abi = MultiAbi{ .specific = Abi.gnueabihf }, }, LibCTarget{ .name = "arm-linux-gnueabi", - .arch = MultiArch {.specific = Arch.arm}, - .abi = MultiAbi {.specific = Abi.gnueabi}, + .arch = MultiArch{ .specific = Arch.arm }, + .abi = MultiAbi{ .specific = Abi.gnueabi }, }, LibCTarget{ .name = "arm-linux-gnueabihf", - .arch = MultiArch {.specific = Arch.arm}, - .abi = MultiAbi {.specific = Abi.gnueabihf}, + .arch = MultiArch{ .specific = Arch.arm }, + .abi = MultiAbi{ .specific = Abi.gnueabihf }, }, LibCTarget{ .name = "i686-linux-gnu", - .arch = MultiArch {.specific = Arch.i386}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.i386 }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "mips64el-linux-gnu-n32", - .arch = MultiArch {.specific = Arch.mips64el}, - .abi = MultiAbi {.specific = Abi.gnuabin32}, + .arch = MultiArch{ .specific = Arch.mips64el }, + .abi = MultiAbi{ .specific = Abi.gnuabin32 }, }, LibCTarget{ .name = "mips64el-linux-gnu-n64", - .arch = MultiArch {.specific = Arch.mips64el}, - .abi = MultiAbi {.specific = Abi.gnuabi64}, + .arch = MultiArch{ .specific = Arch.mips64el }, + .abi = MultiAbi{ .specific = Abi.gnuabi64 }, }, LibCTarget{ .name = "mips64-linux-gnu-n32", - .arch = MultiArch {.specific = Arch.mips64}, - .abi = MultiAbi {.specific = Abi.gnuabin32}, + .arch = MultiArch{ .specific = Arch.mips64 }, + .abi = MultiAbi{ .specific = Abi.gnuabin32 }, }, LibCTarget{ .name = "mips64-linux-gnu-n64", - .arch = MultiArch {.specific = Arch.mips64}, - .abi = MultiAbi {.specific = Abi.gnuabi64}, + .arch = MultiArch{ .specific = Arch.mips64 }, + .abi = MultiAbi{ .specific = Abi.gnuabi64 }, }, LibCTarget{ .name = "mipsel-linux-gnu", - .arch = MultiArch {.specific = Arch.mipsel}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.mipsel }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "mips-linux-gnu", - .arch = MultiArch {.specific = Arch.mips}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.mips }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "powerpc64le-linux-gnu", - .arch = MultiArch {.specific = Arch.powerpc64le}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.powerpc64le }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "powerpc64-linux-gnu", - .arch = MultiArch {.specific = Arch.powerpc64}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.powerpc64 }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "powerpc-linux-gnu", - .arch = MultiArch {.specific = Arch.powerpc}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.powerpc }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "riscv64-linux-gnu-rv64imac-lp64", - .arch = MultiArch {.specific = Arch.riscv64}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.riscv64 }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "s390x-linux-gnu", - .arch = MultiArch {.specific = Arch.s390x}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.s390x }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "sparc64-linux-gnu", - .arch = MultiArch {.specific = Arch.sparc}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.sparc }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "sparcv9-linux-gnu", - .arch = MultiArch {.specific = Arch.sparcv9}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.sparcv9 }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "x86_64-linux-gnu", - .arch = MultiArch {.specific = Arch.x86_64}, - .abi = MultiAbi {.specific = Abi.gnu}, + .arch = MultiArch{ .specific = Arch.x86_64 }, + .abi = MultiAbi{ .specific = Abi.gnu }, }, LibCTarget{ .name = "x86_64-linux-gnu-x32", - .arch = MultiArch {.specific = Arch.x86_64}, - .abi = MultiAbi {.specific = Abi.gnux32}, + .arch = MultiArch{ .specific = Arch.x86_64 }, + .abi = MultiAbi{ .specific = Abi.gnux32 }, }, }; @@ -258,7 +258,7 @@ const LibCVendor = enum { }; pub fn main() !void { - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); const allocator = &arena.allocator; const args = try std.process.argsAlloc(allocator); var search_paths = std.ArrayList([]const u8).init(allocator); diff --git a/tools/update_glibc.zig b/tools/update_glibc.zig index c0a3153aec..ca2ee295ec 100644 --- a/tools/update_glibc.zig +++ b/tools/update_glibc.zig @@ -131,7 +131,7 @@ const Function = struct { }; pub fn main() !void { - var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); const allocator = &arena.allocator; const args = try std.process.argsAlloc(allocator); const in_glibc_dir = args[1]; // path to the unzipped tarball of glibc, e.g. ~/downloads/glibc-2.25