srctree

mlugg parent 14ab9fb1 22980048
std.os.linux: do not use `usingnamespace` to define getauxval

This usage of usingnamespace was removed fairly trivially - theresulting code is, IMO, more clear.

Eliminates one more usage of usingnamespace from the standard library.

inlinesplit
lib/std/os/linux.zig added: 11, removed: 10, total 1
@@ -388,20 +388,21 @@ pub usingnamespace @import("linux/io_uring.zig");
/// Set by startup code, used by `getauxval`.
pub var elf_aux_maybe: ?[*]std.elf.Auxv = null;
 
pub usingnamespace if (switch (builtin.zig_backend) {
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,
}) struct {
/// See `std.elf` for the constants.
/// This matches the libc getauxval function.
pub extern fn getauxval(index: usize) usize;
comptime {
};
 
comptime {
if (extern_getauxval) {
@export(getauxvalImpl, .{ .name = "getauxval", .linkage = .Weak });
}
} else struct {
pub const getauxval = getauxvalImpl;
};
}
 
pub const getauxval = if (extern_getauxval) struct {
extern fn getauxval(index: usize) usize;
}.getauxval else getauxvalImpl;
 
fn getauxvalImpl(index: usize) callconv(.C) usize {
const auxv = elf_aux_maybe orelse return 0;