aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-07-03 22:27:21 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-07-03 22:27:21 -0700
commit6db190cf708d6ddb1c51d294c6f5a9416106277f (patch)
tree3d6a1e86f9e67c449ab0f2cb732d5c5f8ae2f5e0 /lib/std
parentfdc24e66084c40cfbdb6ed459799f77ea405c4ac (diff)
parent314ce5465dfdc9f4d1e2d178704b47666d541fc4 (diff)
downloadzig-6db190cf708d6ddb1c51d294c6f5a9416106277f.tar.gz
zig-6db190cf708d6ddb1c51d294c6f5a9416106277f.zip
Merge remote-tracking branch 'origin/master' into llvm14
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/os/linux.zig19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig
index 1b3a71cebd..9a01b90142 100644
--- a/lib/std/os/linux.zig
+++ b/lib/std/os/linux.zig
@@ -3222,16 +3222,21 @@ pub const epoll_data = extern union {
@"u64": u64,
};
-// On x86_64 the structure is packed so that it matches the definition of its
-// 32bit counterpart
-pub const epoll_event = switch (native_arch) {
- .x86_64 => packed struct {
- events: u32,
- data: epoll_data,
+pub const epoll_event = switch (builtin.zig_backend) {
+ // stage1 crashes with the align(4) field so we have this workaround
+ .stage1 => switch (native_arch) {
+ .x86_64 => packed struct {
+ events: u32,
+ data: epoll_data,
+ },
+ else => extern struct {
+ events: u32,
+ data: epoll_data,
+ },
},
else => extern struct {
events: u32,
- data: epoll_data,
+ data: epoll_data align(4),
},
};