diff options
Diffstat (limited to 'main/musl/1006-fix-struct-signalfd_siginfo.patch')
-rw-r--r-- | main/musl/1006-fix-struct-signalfd_siginfo.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/main/musl/1006-fix-struct-signalfd_siginfo.patch b/main/musl/1006-fix-struct-signalfd_siginfo.patch new file mode 100644 index 0000000000..f8c1634bfb --- /dev/null +++ b/main/musl/1006-fix-struct-signalfd_siginfo.patch @@ -0,0 +1,35 @@ +From 5979593566fd4b22ab076f2a699b238006dc0c67 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> +Date: Wed, 25 Dec 2013 13:33:46 +0200 +Subject: [PATCH] fix struct signalfd_siginfo + +ssi_ptr is really 64-bit in kernel, so fix that. assuming sizeof(void*) +for it also caused incorrect padding for 32-bits, as the following +64-bits are aligned to 64-bits (and the padding was not taken into +account), so fix the padding as well. add addr_lsb field while there. +--- + include/sys/signalfd.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/include/sys/signalfd.h b/include/sys/signalfd.h +index 4f3d399..55431b9 100644 +--- a/include/sys/signalfd.h ++++ b/include/sys/signalfd.h +@@ -30,11 +30,12 @@ struct signalfd_siginfo { + uint32_t ssi_trapno; + int32_t ssi_status; + int32_t ssi_int; +- uintptr_t ssi_ptr; ++ uint64_t ssi_ptr; + uint64_t ssi_utime; + uint64_t ssi_stime; + uint64_t ssi_addr; +- uint8_t pad[128-12*4-sizeof(void *)-3*8]; ++ uint16_t ssi_addr_lsb; ++ uint8_t pad[128-12*4-4*8-2]; + }; + + #ifdef __cplusplus +-- +1.8.5.1 + |