aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-05-17 11:54:15 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-05-17 11:54:15 +0000
commitbceef1f335c5c389a4be19b08f799bc4367c303e (patch)
tree13ccdf304928c47b8811ac24e98fc80bf8689d0b
parent28e80cae09ef6795534887360cded93dcffe026a (diff)
downloadalpine_aports-bceef1f335c5c389a4be19b08f799bc4367c303e.tar.bz2
alpine_aports-bceef1f335c5c389a4be19b08f799bc4367c303e.tar.xz
alpine_aports-bceef1f335c5c389a4be19b08f799bc4367c303e.zip
core/uclibc: fix ppoll
fixes broken ppoll that made udev go nuts
-rw-r--r--core/uclibc/APKBUILD4
-rw-r--r--core/uclibc/ppoll.patch59
2 files changed, 62 insertions, 1 deletions
diff --git a/core/uclibc/APKBUILD b/core/uclibc/APKBUILD
index 836dff1b5c..67baa28281 100644
--- a/core/uclibc/APKBUILD
+++ b/core/uclibc/APKBUILD
@@ -1,7 +1,7 @@
1# Maintainer: Natanael Copa <ncopa@alpinelinux.org> 1# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
2pkgname=uclibc 2pkgname=uclibc
3pkgver=0.9.30.1 3pkgver=0.9.30.1
4pkgrel=5 4pkgrel=6
5pkgdesc="C library for developing embedded Linux systems" 5pkgdesc="C library for developing embedded Linux systems"
6url=http://uclibc.org 6url=http://uclibc.org
7license="LGPL-2" 7license="LGPL-2"
@@ -14,6 +14,7 @@ source="http://uclibc.org/downloads/$_mynamever.tar.bz2
14 $pkgname-0.9.30.1-resolv.patch 14 $pkgname-0.9.30.1-resolv.patch
15 uclibc-0.9.30.1-pthread_getattr_np.patch 15 uclibc-0.9.30.1-pthread_getattr_np.patch
16 0001-ldd-segfault-fix.patch 16 0001-ldd-segfault-fix.patch
17 ppoll.patch
17 uclibcconfig 18 uclibcconfig
18 " 19 "
19 20
@@ -48,4 +49,5 @@ md5sums="1a4b84e5536ad8170563ffa88c34679c uClibc-0.9.30.1.tar.bz2
48ea91460617601b6e084ead66bc3948f5 uclibc-0.9.30.1-resolv.patch 49ea91460617601b6e084ead66bc3948f5 uclibc-0.9.30.1-resolv.patch
49cf80c0d44a41e02f389be427ee615d61 uclibc-0.9.30.1-pthread_getattr_np.patch 50cf80c0d44a41e02f389be427ee615d61 uclibc-0.9.30.1-pthread_getattr_np.patch
504079b20c763727863bc53408e4988434 0001-ldd-segfault-fix.patch 514079b20c763727863bc53408e4988434 0001-ldd-segfault-fix.patch
5260738298e377295d359768a09adac0bb ppoll.patch
51a4512d5594f1b450ffbf2ff9eda6263b uclibcconfig" 53a4512d5594f1b450ffbf2ff9eda6263b uclibcconfig"
diff --git a/core/uclibc/ppoll.patch b/core/uclibc/ppoll.patch
new file mode 100644
index 0000000000..e73733e216
--- /dev/null
+++ b/core/uclibc/ppoll.patch
@@ -0,0 +1,59 @@
1commit f82635e74a7e174f71f955eaa4f5dc788e596cc0
2Author: Denis Vlasenko <vda.linux@googlemail.com>
3Date: Wed Jan 28 23:42:01 2009 +0000
4
5 fix ppoll. we forgot to pass 5th parameter to the syscall
6
7diff --git a/libc/sysdeps/linux/common/ppoll.c b/libc/sysdeps/linux/common/ppoll.c
8index edcb1dc..d550ae8 100644
9--- a/libc/sysdeps/linux/common/ppoll.c
10+++ b/libc/sysdeps/linux/common/ppoll.c
11@@ -17,6 +17,7 @@
12 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13 02111-1307 USA. */
14
15+#include <signal.h>
16 #include <sys/syscall.h>
17 #include <sys/poll.h>
18
19@@ -26,24 +27,26 @@
20
21 # define __NR___libc_ppoll __NR_ppoll
22 static __always_inline
23-_syscall4(int, __libc_ppoll, struct pollfd *, fds,
24- nfds_t, nfds, const struct timespec *, timeout,
25- const __sigset_t *, sigmask)
26+_syscall5(int, __libc_ppoll,
27+ struct pollfd *, fds,
28+ nfds_t, nfds,
29+ const struct timespec *, timeout,
30+ const __sigset_t *, sigmask,
31+ size_t, sigsetsize)
32
33 int
34-ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
35+ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
36 const __sigset_t *sigmask)
37 {
38- /* The Linux kernel can in some situations update the timeout value.
39- We do not want that so use a local variable. */
40- struct timespec tval;
41- if (timeout != NULL)
42- {
43- tval = *timeout;
44- timeout = &tval;
45- }
46-
47- return __libc_ppoll(fds, nfds, timeout, sigmask);
48+ /* The Linux kernel can in some situations update the timeout value.
49+ We do not want that so use a local variable. */
50+ struct timespec tval;
51+ if (timeout != NULL) {
52+ tval = *timeout;
53+ timeout = &tval;
54+ }
55+
56+ return __libc_ppoll(fds, nfds, timeout, sigmask, _NSIG / 8);
57 }
58 libc_hidden_def(ppoll)
59