syscall: fix epoll_event padding on linux/arm64
EpollEvent needs padding before Fd as was already done for x/sys/unix in
CL 21971.
Fixes #35479
Change-Id: Iee963f9e26d0a23d16d6bab736fd71ae7f502894
Reviewed-on: https://go-review.googlesource.com/c/go/+/206838
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/src/syscall/types_linux.go b/src/syscall/types_linux.go
index 9c9c521..20abda2 100644
--- a/src/syscall/types_linux.go
+++ b/src/syscall/types_linux.go
@@ -111,7 +111,7 @@
// The real epoll_event is a union, and godefs doesn't handle it well.
struct my_epoll_event {
uint32_t events;
-#if defined(__ARM_EABI__) || (defined(__mips__) && _MIPS_SIM == _ABIO32)
+#if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32)
// padding is not specified in linux/eventpoll.h but added to conform to the
// alignment requirements of EABI
int32_t padFd;
diff --git a/src/syscall/ztypes_linux_arm64.go b/src/syscall/ztypes_linux_arm64.go
index d7e3526..f63391c 100644
--- a/src/syscall/ztypes_linux_arm64.go
+++ b/src/syscall/ztypes_linux_arm64.go
@@ -564,6 +564,7 @@
type EpollEvent struct {
Events uint32
+ _ int32
Fd int32
Pad int32
}