commit 0cf5f0d0b085e66eb5421b5bb8a179d9b7fad6db (tree) parent b84db311d90d722c206a7eea5464f46fd1b9e827 Author: Alex Rønne Petersen <alex@alexrp.com> Date: Wed, 26 Mar 2025 18:26:48 +0100 std.process: Fix getBaseAddress() for linux + libc. In this case we should use the getauxval() from libc, not our own. Diffstat:
| M | lib/std/process.zig | | | 5 | +++-- |
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/std/process.zig b/lib/std/process.zig @@ -1652,11 +1652,12 @@ pub fn posixGetUserInfo(name: []const u8) !UserInfo { pub fn getBaseAddress() usize { switch (native_os) { .linux => { - const base = std.os.linux.getauxval(std.elf.AT_BASE); + const getauxval = if (builtin.link_libc) std.c.getauxval else std.os.linux.getauxval; + const base = getauxval(std.elf.AT_BASE); if (base != 0) { return base; } - const phdr = std.os.linux.getauxval(std.elf.AT_PHDR); + const phdr = getauxval(std.elf.AT_PHDR); return phdr - @sizeOf(std.elf.Ehdr); }, .macos, .freebsd, .netbsd => {