Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37512522
en ru br
Репозитории ALT
S:265-alt5
5.1: 264-alt1
4.1: 259-alt1
4.0: 259-alt1
3.0: 227-alt1
www.altlinux.org/Changes

Группа :: Система/Основа
Пакет: nss_ldap

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: nss_ldap-265-glibc-2.16.patch
Скачать


Description: Handle removal of __libc_lock_lock and similar symbols from libc
Bug: http://bugzilla.padl.com/show_bug.cgi?id=445
Bug-Debian: http://bugs.debian.org/727177
Bug-Arch-Linux-ARM: https://github.com/archlinuxarm/PKGBUILDs/issues/296
Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=438692
Author: Dennis Schridde <devurandom@gmx.net>
--- a/ldap-nss.c
+++ b/ldap-nss.c
@@ -142,7 +142,7 @@ static void (*__sigpipe_handler) (int) =
  */
 static ldap_session_t __session = { NULL, NULL, 0, LS_UNINITIALIZED };
 
-#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
 static pthread_once_t __once = PTHREAD_ONCE_INIT;
 #endif
 
@@ -150,7 +150,7 @@ static pthread_once_t __once = PTHREAD_O
 static FILE *__debugfile;
 #endif /* LBER_OPT_LOG_PRINT_FILE */
 
-#ifndef HAVE_PTHREAD_ATFORK
+#if !defined(HAVE_PTHREAD_ATFORK) || !defined(HAVE___LIBC_ONCE)
 /* 
  * Process ID that opened the session.
  */
@@ -162,7 +162,7 @@ static uid_t __euid = -1;
 static int __ssl_initialized = 0;
 #endif /* HAVE_LDAPSSL_CLIENT_INIT */
 
-#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
 /*
  * Prepare for fork(); lock mutex.
  */
@@ -514,7 +514,7 @@ _nss_ldap_default_constr (nss_ldap_backe
 }
 #endif /* HAVE_NSSWITCH_H */
 
-#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
 static void
 do_atfork_prepare (void)
 {
@@ -548,7 +548,7 @@ do_atfork_setup (void)
 #ifdef HAVE_PTHREAD_ATFORK
   (void) pthread_atfork (do_atfork_prepare, do_atfork_parent,
 			 do_atfork_child);
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_ATFORK)
   (void) __libc_atfork (do_atfork_prepare, do_atfork_parent, do_atfork_child);
 #endif
 
@@ -1111,7 +1111,7 @@ static NSS_STATUS
 do_init (void)
 {
   ldap_config_t *cfg;
-#ifndef HAVE_PTHREAD_ATFORK
+#if !defined(HAVE_PTHREAD_ATFORK) || !defined(HAVE___LIBC_ONCE)
   pid_t pid;
 #endif
   uid_t euid;
@@ -1128,7 +1128,7 @@ do_init (void)
     }
 
 #ifndef HAVE_PTHREAD_ATFORK
-#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE___LIBC_ONCE)
   /*
    * This bogosity is necessary because Linux uses different
    * PIDs for different threads (like IRIX, which we don't
@@ -1160,7 +1160,7 @@ do_init (void)
     pid = -1;			/* linked against libpthreads, don't care */
 #else
   pid = getpid ();
-#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */
+#endif /* HAVE___LIBC_ONCE */
 #endif /* HAVE_PTHREAD_ATFORK */
 
   euid = geteuid ();
@@ -1170,7 +1170,7 @@ do_init (void)
   syslog (LOG_DEBUG,
 	  "nss_ldap: __session.ls_state=%d, __session.ls_conn=%p, __euid=%i, euid=%i",
 	  __session.ls_state, __session.ls_conn, __euid, euid);
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_ONCE)
   syslog (LOG_DEBUG,
 	  "nss_ldap: libpthreads=%s, __session.ls_state=%d, __session.ls_conn=%p, __pid=%i, pid=%i, __euid=%i, euid=%i",
  	  ((__pthread_once == NULL || __pthread_atfork == NULL) ? "FALSE" : "TRUE"),
@@ -1194,11 +1194,11 @@ do_init (void)
     }
   else
 #ifndef HAVE_PTHREAD_ATFORK
-#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE___LIBC_ONCE)
   if ((__pthread_once == NULL || __pthread_atfork == NULL) && __pid != pid)
 #else
   if (__pid != pid)
-#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */
+#endif /* HAVE___LIBC_ONCE */
     {
       do_close_no_unbind ();
     }
@@ -1259,9 +1259,9 @@ do_init (void)
       debug ("<== do_init (pthread_once failed)");
       return NSS_UNAVAIL;
     }
-#elif defined(HAVE_PTHREAD_ATFORK) && ( defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) )
+#elif defined(HAVE_PTHREAD_ATFORK) && defined(HAVE___LIBC_ONCE)
   __libc_once (__once, do_atfork_setup);
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_ONCE)
   /*
    * Only install the pthread_atfork() handlers i
    * we are linked against libpthreads. Otherwise,
--- a/ldap-nss.h
+++ b/ldap-nss.h
@@ -670,7 +670,7 @@ extern int __multi_threaded;
 #define NSS_LDAP_LOCK(m)		mutex_lock(&m)
 #define NSS_LDAP_UNLOCK(m)		mutex_unlock(&m)
 #define NSS_LDAP_DEFINE_LOCK(m)		static mutex_t m = DEFAULTMUTEX
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_LOCK_LOCK) && defined(HAVE___LIBC_LOCK_UNLOCK)
 #define NSS_LDAP_LOCK(m)		__libc_lock_lock(m)
 #define NSS_LDAP_UNLOCK(m)		__libc_lock_unlock(m)
 #define NSS_LDAP_DEFINE_LOCK(m)		static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER
--- a/configure.in
+++ b/configure.in
@@ -234,6 +234,7 @@ AC_CHECK_FUNCS(pthread_atfork)
 AC_CHECK_FUNCS(pthread_once)
 AC_CHECK_FUNCS(ether_aton)
 AC_CHECK_FUNCS(ether_ntoa)
+AC_CHECK_FUNCS(__libc_once __libc_atfork __libc_lock_lock __libc_lock_unlock)
 
 AC_MSG_CHECKING(for struct ether_addr)
 AC_TRY_COMPILE([#include <sys/types.h>
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin