diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-05-17 11:54:15 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-05-17 11:54:15 +0000 |
commit | bceef1f335c5c389a4be19b08f799bc4367c303e (patch) | |
tree | 13ccdf304928c47b8811ac24e98fc80bf8689d0b | |
parent | 28e80cae09ef6795534887360cded93dcffe026a (diff) | |
download | alpine_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/APKBUILD | 4 | ||||
-rw-r--r-- | core/uclibc/ppoll.patch | 59 |
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> |
2 | pkgname=uclibc | 2 | pkgname=uclibc |
3 | pkgver=0.9.30.1 | 3 | pkgver=0.9.30.1 |
4 | pkgrel=5 | 4 | pkgrel=6 |
5 | pkgdesc="C library for developing embedded Linux systems" | 5 | pkgdesc="C library for developing embedded Linux systems" |
6 | url=http://uclibc.org | 6 | url=http://uclibc.org |
7 | license="LGPL-2" | 7 | license="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 | |||
48 | ea91460617601b6e084ead66bc3948f5 uclibc-0.9.30.1-resolv.patch | 49 | ea91460617601b6e084ead66bc3948f5 uclibc-0.9.30.1-resolv.patch |
49 | cf80c0d44a41e02f389be427ee615d61 uclibc-0.9.30.1-pthread_getattr_np.patch | 50 | cf80c0d44a41e02f389be427ee615d61 uclibc-0.9.30.1-pthread_getattr_np.patch |
50 | 4079b20c763727863bc53408e4988434 0001-ldd-segfault-fix.patch | 51 | 4079b20c763727863bc53408e4988434 0001-ldd-segfault-fix.patch |
52 | 60738298e377295d359768a09adac0bb ppoll.patch | ||
51 | a4512d5594f1b450ffbf2ff9eda6263b uclibcconfig" | 53 | a4512d5594f1b450ffbf2ff9eda6263b 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 @@ | |||
1 | commit f82635e74a7e174f71f955eaa4f5dc788e596cc0 | ||
2 | Author: Denis Vlasenko <vda.linux@googlemail.com> | ||
3 | Date: Wed Jan 28 23:42:01 2009 +0000 | ||
4 | |||
5 | fix ppoll. we forgot to pass 5th parameter to the syscall | ||
6 | |||
7 | diff --git a/libc/sysdeps/linux/common/ppoll.c b/libc/sysdeps/linux/common/ppoll.c | ||
8 | index 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 | |||