mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 22:35:24 +00:00
std.os.linux: do not use usingnamespace to define getauxval
This usage of `usingnamespace` was removed fairly trivially - the resulting code is, IMO, more clear. Eliminates one more usage of `usingnamespace` from the standard library.
This commit is contained in:
parent
14ab9fb154
commit
229800482d
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user