]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: fix epoll_event padding on linux/arm64
authorTobias Klauser <tklauser@distanz.ch>
Tue, 12 Nov 2019 18:59:02 +0000 (19:59 +0100)
committerTobias Klauser <tobias.klauser@gmail.com>
Tue, 12 Nov 2019 19:15:15 +0000 (19:15 +0000)
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>

src/syscall/types_linux.go
src/syscall/ztypes_linux_arm64.go

index 9c9c521af46ae6faf9919170b652dcaf993ed00a..20abda2473a355e644e68bc70a6e418576505bd6 100644 (file)
@@ -111,7 +111,7 @@ typedef struct {} ptracePer;
 // 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;
index d7e3526af6dd1d94da2b24bc41c4414b027b82b5..f63391cdadc86e63cb818363dcd2d357bf08d928 100644 (file)
@@ -564,6 +564,7 @@ type Ustat_t struct {
 
 type EpollEvent struct {
        Events uint32
+       _      int32
        Fd     int32
        Pad    int32
 }