diff options
Diffstat (limited to 'libpthread/nptl')
| -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)      {  | 
