From cde99cd2b7b16a6113acb054e89d490047932a9f Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 8 Apr 2010 11:18:26 +0200 Subject: [PATCH] Don't call uname or getrlimit in libpthread init function * sysdeps/unix/sysv/linux/i386/Versions: Export __uname under GLIBC_PRIVATE. * nptl/Versions: Export __getrlimit under GLIBC_PRIVATE. * sysdeps/unix/sysv/linux/i386/smp.h: Call __uname instead of uname. * nptl/nptl-init.c: Call __getrlimit instead of getrlimit. --- ChangeLog | 8 ++++++++ nptl/Versions | 1 + nptl/nptl-init.c | 2 +- nptl/sysdeps/unix/sysv/linux/i386/Versions | 6 ++++++ nptl/sysdeps/unix/sysv/linux/i386/smp.h | 2 +- 5 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 nptl/sysdeps/unix/sysv/linux/i386/Versions --- a/nptl/Version +++ b/nptl/Versions @@ -30,6 +30,7 @@ libc { __libc_alloca_cutoff; # Internal libc interface to libpthread __libc_dl_error_tsd; + __getrlimit; } } --- a/nptl/nptl-init.c +++ b/nptl/nptl-init.c @@ -414,7 +414,7 @@ __pthread_initialize_minimal_internal (void) /* Determine the default allowed stack size. This is the size used in case the user does not specify one. */ struct rlimit limit; - if (getrlimit (RLIMIT_STACK, &limit) != 0 + if (__getrlimit (RLIMIT_STACK, &limit) != 0 || limit.rlim_cur == RLIM_INFINITY) /* The system limit is not usable. Use an architecture-specific default. */ --- a/nptl/sysdeps/unix/sysv/linux/i386/Versions +++ b/nptl/sysdeps/unix/sysv/linux/i386/Versions @@ -0,0 +1,6 @@ +libc { + GLIBC_PRIVATE { + # Internal libc interface to libpthread + __uname; + } +} --- a/nptl/sysdeps/unix/sysv/linux/i386/smp.h +++ b/nptl/sysdeps/unix/sysv/linux/i386/smp.h @@ -36,7 +36,7 @@ is_smp_system (void) char *cp; /* Try reading the number using `sysctl' first. */ - if (uname (&u.uts) == 0) + if (__uname (&u.uts) == 0) cp = u.uts.version; else {