diff options
Diffstat (limited to 'libpthread')
-rw-r--r-- | libpthread/nptl/init.c | 12 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/unix/sysv/linux/smp.h | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/libpthread/nptl/init.c b/libpthread/nptl/init.c index 4c0a69d17..003dd7bbf 100644 --- a/libpthread/nptl/init.c +++ b/libpthread/nptl/init.c @@ -264,13 +264,21 @@ __pthread_initialize_minimal_internal (void) sa.sa_flags = SA_SIGINFO; __sigemptyset (&sa.sa_mask); +#ifdef __UCLIBC__ (void) sigaction (SIGCANCEL, &sa, NULL); +#else + (void) __libc_sigaction (SIGCANCEL, &sa, NULL); +#endif /* Install the handle to change the threads' uid/gid. */ sa.sa_sigaction = sighandler_setxid; sa.sa_flags = SA_SIGINFO | SA_RESTART; +#ifdef __UCLIBC__ (void) sigaction (SIGSETXID, &sa, NULL); +#else + (void) __libc_sigaction (SIGSETXID, &sa, NULL); +#endif /* The parent process might have left the signals blocked. Just in case, unblock it. We reuse the signal mask in the sigaction @@ -296,7 +304,11 @@ __pthread_initialize_minimal_internal (void) else { /* Round the resource limit up to page size. */ +#ifdef __UCLIBC__ const uintptr_t pagesz = sysconf (_SC_PAGESIZE); +#else + const uintptr_t pagesz = __sysconf (_SC_PAGESIZE); +#endif __default_stacksize = (limit.rlim_cur + pagesz - 1) & -pagesz; } diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h b/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h index 41fa97ff4..fbe16bacd 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h @@ -34,7 +34,11 @@ is_smp_system (void) size_t reslen = sizeof (buf); /* Try reading the number using `sysctl' first. */ +#ifdef __UCLIBC__ if (sysctl ((int *) sysctl_args, +#else + if (__sysctl ((int *) sysctl_args, +#endif sizeof (sysctl_args) / sizeof (sysctl_args[0]), buf, &reslen, NULL, 0) < 0) { |