aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/1006-fix-struct-signalfd_siginfo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/musl/1006-fix-struct-signalfd_siginfo.patch')
-rw-r--r--main/musl/1006-fix-struct-signalfd_siginfo.patch35
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
+