std.heap.page_size_min: relax freestanding restriction

x86_64 and aarch64 have safe values for page_size_min
This commit is contained in:
Andrew Kelley 2025-02-23 21:28:26 -08:00 committed by David Rubin
parent faf256e429
commit 2447b87d98

View File

@ -42,10 +42,8 @@ pub var next_mmap_addr_hint: ?[*]align(page_size_min) u8 = null;
/// ///
/// On many systems, the actual page size can only be determined at runtime /// On many systems, the actual page size can only be determined at runtime
/// with `pageSize`. /// with `pageSize`.
pub const page_size_min: usize = std.options.page_size_min orelse (page_size_min_default orelse if (builtin.os.tag == .freestanding or builtin.os.tag == .other) pub const page_size_min: usize = std.options.page_size_min orelse page_size_min_default orelse
@compileError("freestanding/other page_size_min must provided with std.options.page_size_min") @compileError(@tagName(builtin.cpu.arch) ++ "-" ++ @tagName(builtin.os.tag) ++ " has unknown page_size_min; populate std.options.page_size_min");
else
@compileError(@tagName(builtin.cpu.arch) ++ "-" ++ @tagName(builtin.os.tag) ++ " has unknown page_size_min; populate std.options.page_size_min"));
/// comptime-known maximum page size of the target. /// comptime-known maximum page size of the target.
/// ///
@ -831,8 +829,10 @@ const page_size_min_default: ?usize = switch (builtin.os.tag) {
.xtensa => 4 << 10, .xtensa => 4 << 10,
else => null, else => null,
}, },
.freestanding => switch (builtin.cpu.arch) { .freestanding, .other => switch (builtin.cpu.arch) {
.wasm32, .wasm64 => 64 << 10, .wasm32, .wasm64 => 64 << 10,
.x86, .x86_64 => 4 << 10,
.aarch64, .aarch64_be => 4 << 10,
else => null, else => null,
}, },
else => null, else => null,