[PATCH] pselect: Use linux pselect syscall when available
Nic Dade
nic.dade at gmail.com
Sat Dec 19 19:34:22 UTC 2015
> v3
Sure. Next time.
> if ... expansion space
Well uclibc does not do that. It defines sigset_t to match the kernel, and
even has a comment about that.
/* A 'sigset_t' has a bit for each signal.
* glibc has space for 1024 signals (!), but most arches supported
* by Linux have 64 signals, and only MIPS has 128.
* There seems to be some historical baggage in sparc[64]
* where they might have (or had in the past) 32 signals only,
* I hope it's irrelevant now.
* Signal 0 does not exist, so we have signals 1..64, not 0..63.
* In uclibc, kernel and userspace sigset_t is always the same.
* BTW, struct sigaction is also the same on kernel and userspace side.
*/
#if defined(__mips__)
# define _SIGSET_NWORDS (128 / (8 * sizeof (unsigned long)))
#else
# define _SIGSET_NWORDS (64 / (8 * sizeof (unsigned long)))
#endif
typedef struct {
unsigned long __val[_SIGSET_NWORDS];
} __sigset_t;
The patched uclibc pselect works properly on ARM (32-bit), both in behavior
and watching the operation in strace. ARM is the only uclibc target to
which I have easy access.
-Nicolas Dade
On Sat, Dec 19, 2015 at 12:58 AM, Waldemar Brodkorb <wbx at openadk.org> wrote:
> Hi Nicolas,
> Nicolas S. Dade wrote,
>
> > This supercedes the previous pselect patch from 16 Dec 2015.
>
> Can you resend next time with PATCH v3 in the subject and
> a short Changelog after the comment ---. Thanks.
>
> What you think about Rich comment?
>
> best regards
> Waldemar
>
More information about the uClibc
mailing list