Skip to content

Commit acb5807

Browse files
committed
std.os.linux: fallback to pagesize when MMAP2_UNIT isn't comptime known
1 parent 138fa97 commit acb5807

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

lib/std/os/linux.zig

+1-1
Original file line numberDiff line numberDiff line change
@@ -907,7 +907,7 @@ pub fn mmap(address: ?[*]u8, length: usize, prot: usize, flags: MAP, fd: i32, of
907907
prot,
908908
@as(u32, @bitCast(flags)),
909909
@bitCast(@as(isize, fd)),
910-
@truncate(@as(u64, @bitCast(offset)) / MMAP2_UNIT),
910+
@truncate(@as(u64, @bitCast(offset)) / (MMAP2_UNIT orelse std.heap.pageSize())),
911911
);
912912
} else {
913913
// The s390x mmap() syscall existed before Linux supported syscalls with 5+ parameters, so

lib/std/os/linux/m68k.zig

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ pub const Elf_Symndx = u32;
286286

287287
// m68k has multiple minimum page sizes.
288288
// glibc sets MMAP2_PAGE_UNIT to -1 so it is queried at runtime.
289-
pub const MMAP2_UNIT = -1;
289+
pub const MMAP2_UNIT = null;
290290

291291
// glibc 112a0ae18b831bf31f44d81b82666980312511d6
292292
pub const VDSO = null;

lib/std/os/linux/tls.zig

+1-1
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ inline fn mmap(address: ?[*]u8, length: usize, prot: usize, flags: linux.MAP, fd
539539
prot,
540540
@as(u32, @bitCast(flags)),
541541
@as(usize, @bitCast(@as(isize, fd))),
542-
@as(usize, @truncate(@as(u64, @bitCast(offset)) / linux.MMAP2_UNIT)),
542+
@as(usize, @truncate(@as(u64, @bitCast(offset)) / (linux.MMAP2_UNIT orelse std.heap.pageSize()))),
543543
});
544544
} else {
545545
// The s390x mmap() syscall existed before Linux supported syscalls with 5+ parameters, so

0 commit comments

Comments
 (0)