Commit ed6418544c

Alex Rønne Petersen <alex@alexrp.com>
2025-03-27 15:39:24
Merge pull request #23373 from alexrp/get-base-address
`std.process`: Some minor fixes for `getBaseAddress()`
1 parent 3ae9a99
Changed files (1)
lib
lib/std/process.zig
@@ -1651,14 +1651,15 @@ 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 => {
+        .driverkit, .ios, .macos, .tvos, .visionos, .watchos => {
             return @intFromPtr(&std.c._mh_execute_header);
         },
         .windows => return @intFromPtr(windows.kernel32.GetModuleHandleW(null)),