diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-07-03 22:27:21 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-07-03 22:27:21 -0700 |
| commit | 6db190cf708d6ddb1c51d294c6f5a9416106277f (patch) | |
| tree | 3d6a1e86f9e67c449ab0f2cb732d5c5f8ae2f5e0 /lib/std | |
| parent | fdc24e66084c40cfbdb6ed459799f77ea405c4ac (diff) | |
| parent | 314ce5465dfdc9f4d1e2d178704b47666d541fc4 (diff) | |
| download | zig-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.zig | 19 |
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), }, }; |
