Skip to content

Commit

Permalink
linux: don't export getauxval when not required
Browse files Browse the repository at this point in the history
  • Loading branch information
wooster0 committed Dec 20, 2024
1 parent e2e3633 commit 9304f54
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions lib/std/os/linux.zig
Original file line number Diff line number Diff line change
Expand Up @@ -475,22 +475,22 @@ pub const O = switch (native_arch) {
/// Set by startup code, used by `getauxval`.
pub var elf_aux_maybe: ?[*]std.elf.Auxv = null;

const extern_getauxval = switch (builtin.zig_backend) {
/// Whether an external or internal getauxval implementation is used.
pub const extern_getauxval = switch (builtin.zig_backend) {
// Calling extern functions is not yet supported with these backends
.stage2_aarch64, .stage2_arm, .stage2_riscv64, .stage2_sparc64 => false,
else => !builtin.link_libc,
};

comptime {
const root = @import("root");
// Export this only when building executable, otherwise it is overriding
// the libc implementation
if (extern_getauxval and (builtin.output_mode == .Exe or @hasDecl(root, "main"))) {
@export(&getauxvalImpl, .{ .name = "getauxval", .linkage = .weak });
}
}

pub const getauxval = if (extern_getauxval) struct {
comptime {
const root = @import("root");
// Export this only when building executable, otherwise it is overriding
// the libc implementation
if (extern_getauxval and (builtin.output_mode == .Exe or @hasDecl(root, "main"))) {
@export(&getauxvalImpl, .{ .name = "getauxval", .linkage = .weak });
}
}
extern fn getauxval(index: usize) usize;
}.getauxval else getauxvalImpl;

Expand Down

0 comments on commit 9304f54

Please sign in to comment.