diff --git a/ChangeLog b/ChangeLog index 1a21e9dd06..628fff9e14 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2003-04-17 Ulrich Drepper + * sysdeps/unix/sysv/linux/system.c: If compiled without threads + don't do anything fancy. + + * sysdeps/generic/bits/libc-lock.h: Define + __rtld_lock_define_initialized_recursive. + * nss/getXXbyYY_r.c [USE_NSCD] (REENTRANT_NAME): Only retry contacting nscd if NOT_USENSCD_NAME > 0. * nss/nsswitch.c (__nss_disable_nscd): New function. diff --git a/bits/libc-lock.h b/bits/libc-lock.h index c2bb494940..9a99d51bfd 100644 --- a/bits/libc-lock.h +++ b/bits/libc-lock.h @@ -1,5 +1,5 @@ /* libc-internal interface for mutex locks. Stub version. - Copyright (C) 1996,97,99,2000,01,02 Free Software Foundation, Inc. + Copyright (C) 1996,97,99,2000-2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -40,6 +40,7 @@ /* Define an initialized recursive lock variable NAME with storage class CLASS. */ #define __libc_lock_define_initialized_recursive(CLASS,NAME) +#define __rtld_lock_define_initialized_recursive(CLASS,NAME) /* Initialize the named lock variable, leaving it in a consistent, unlocked state. */ diff --git a/sysdeps/generic/bits/libc-lock.h b/sysdeps/generic/bits/libc-lock.h index c2bb494940..9a99d51bfd 100644 --- a/sysdeps/generic/bits/libc-lock.h +++ b/sysdeps/generic/bits/libc-lock.h @@ -1,5 +1,5 @@ /* libc-internal interface for mutex locks. Stub version. - Copyright (C) 1996,97,99,2000,01,02 Free Software Foundation, Inc. + Copyright (C) 1996,97,99,2000-2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -40,6 +40,7 @@ /* Define an initialized recursive lock variable NAME with storage class CLASS. */ #define __libc_lock_define_initialized_recursive(CLASS,NAME) +#define __rtld_lock_define_initialized_recursive(CLASS,NAME) /* Initialize the named lock variable, leaving it in a consistent, unlocked state. */ diff --git a/sysdeps/unix/sysv/linux/system.c b/sysdeps/unix/sysv/linux/system.c index ffb308b045..3fdff04c22 100644 --- a/sysdeps/unix/sysv/linux/system.c +++ b/sysdeps/unix/sysv/linux/system.c @@ -37,19 +37,22 @@ INLINE_SYSCALL (clone, 3, CLONE_PARENT_SETTID | SIGCHLD, 0, &pid) #endif +#ifdef _LIBC_REENTRANT static void cancel_handler (void *arg); -#define CLEANUP_HANDLER \ +# define CLEANUP_HANDLER \ __libc_cleanup_region_start (1, cancel_handler, &pid) -#define CLEANUP_RESET \ +# define CLEANUP_RESET \ __libc_cleanup_region_end (0) +#endif /* Linux has waitpid(), so override the generic unix version. */ #include +#ifdef _LIBC_REENTRANT /* The cancellation handler. */ static void cancel_handler (void *arg) @@ -71,3 +74,4 @@ cancel_handler (void *arg) DO_UNLOCK (); } +#endif