aboutsummaryrefslogtreecommitdiff
path: root/lib/std/c.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-05-20 07:46:08 +0200
committerGitHub <noreply@github.com>2025-05-20 07:46:08 +0200
commitb27c5fbbdeeab12359c7f5bca0fe15fb0be9424e (patch)
tree50f2dd7a4811a047b4f99c81da04abe58fdcc86e /lib/std/c.zig
parent23c817548bbd3988a5fd224b590a4f6102dbe5db (diff)
parentcd1eea09648f9ca6eeaf3882e1f74f90fe6c8ab3 (diff)
downloadzig-b27c5fbbdeeab12359c7f5bca0fe15fb0be9424e.tar.gz
zig-b27c5fbbdeeab12359c7f5bca0fe15fb0be9424e.zip
Merge pull request #23913 from alexrp/netbsd-libc
Support dynamically-linked NetBSD libc when cross-compiling
Diffstat (limited to 'lib/std/c.zig')
-rw-r--r--lib/std/c.zig32
1 files changed, 29 insertions, 3 deletions
diff --git a/lib/std/c.zig b/lib/std/c.zig
index 3e1ddacf01..e61c8990c3 100644
--- a/lib/std/c.zig
+++ b/lib/std/c.zig
@@ -1840,16 +1840,37 @@ pub const REG = switch (native_os) {
pub const RSP = 20;
},
.netbsd => switch (builtin.cpu.arch) {
- .aarch64 => struct {
+ .aarch64, .aarch64_be => struct {
pub const FP = 29;
pub const SP = 31;
pub const PC = 32;
},
- .arm => struct {
+ .arm, .armeb => struct {
pub const FP = 11;
pub const SP = 13;
pub const PC = 15;
},
+ .x86 => struct {
+ pub const GS = 0;
+ pub const FS = 1;
+ pub const ES = 2;
+ pub const DS = 3;
+ pub const EDI = 4;
+ pub const ESI = 5;
+ pub const EBP = 6;
+ pub const ESP = 7;
+ pub const EBX = 8;
+ pub const EDX = 9;
+ pub const ECX = 10;
+ pub const EAX = 11;
+ pub const TRAPNO = 12;
+ pub const ERR = 13;
+ pub const EIP = 14;
+ pub const CS = 15;
+ pub const EFL = 16;
+ pub const UESP = 17;
+ pub const SS = 18;
+ },
.x86_64 => struct {
pub const RDI = 0;
pub const RSI = 1;
@@ -6806,11 +6827,16 @@ pub const mcontext_t = switch (native_os) {
fpregs: solaris.fpregset_t,
},
.netbsd => switch (builtin.cpu.arch) {
- .aarch64 => extern struct {
+ .aarch64, .aarch64_be => extern struct {
gregs: [35]u64,
fregs: [528]u8 align(16),
spare: [8]u64,
},
+ .x86 => extern struct {
+ gregs: [19]u32,
+ fpregs: [161]u32,
+ mc_tlsbase: u32,
+ },
.x86_64 => extern struct {
gregs: [26]u64,
mc_tlsbase: u64,