svn commit: trunk/uClibc/libpthread/linuxthreads

aldot at uclibc.org aldot at uclibc.org
Thu Sep 25 12:23:22 UTC 2008


Author: aldot
Date: 2008-09-25 05:23:21 -0700 (Thu, 25 Sep 2008)
New Revision: 23496

Log:
- if we only have socket support then there is no resolver state:
  In function `__pthread_reset_main_thread': undefined reference to `_res'


Modified:
   trunk/uClibc/libpthread/linuxthreads/pthread.c


Changeset:
Modified: trunk/uClibc/libpthread/linuxthreads/pthread.c
===================================================================
--- trunk/uClibc/libpthread/linuxthreads/pthread.c	2008-09-25 12:18:49 UTC (rev 23495)
+++ trunk/uClibc/libpthread/linuxthreads/pthread.c	2008-09-25 12:23:21 UTC (rev 23496)
@@ -45,11 +45,12 @@
 extern int _errno;
 extern int _h_errno;
 
+# if defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__
 /* We need the global/static resolver state here.  */
 # include <resolv.h>
 # undef _res
-
 extern struct __res_state _res;
+# endif
 #endif
 
 #ifdef USE_TLS
@@ -72,7 +73,9 @@
 #if !(USE_TLS && HAVE___THREAD)
   .p_errnop = &_errno,
   .p_h_errnop = &_h_errno,
+# if defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__
   .p_resp = &_res,
+# endif
 #endif
   .p_userstack = 1,
   .p_resume_count = __ATOMIC_INITIALIZER,
@@ -539,15 +542,17 @@
 #ifdef USE_TLS
   /* Update the descriptor for the initial thread. */
   THREAD_SETMEM (((pthread_descr) NULL), p_pid, __getpid());
-# ifndef HAVE___THREAD
+# if !defined HAVE___THREAD && (defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__)
   /* Likewise for the resolver state _res.  */
   THREAD_SETMEM (((pthread_descr) NULL), p_resp, &_res);
 # endif
 #else
   /* Update the descriptor for the initial thread. */
   __pthread_initial_thread.p_pid = __getpid();
+# if defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__
   /* Likewise for the resolver state _res.  */
   __pthread_initial_thread.p_resp = &_res;
+# endif
 #endif
 #if !__ASSUME_REALTIME_SIGNALS
   /* Initialize real-time signals. */
@@ -1112,7 +1117,9 @@
   /* Now this thread modifies the global variables.  */
   THREAD_SETMEM(self, p_errnop, &_errno);
   THREAD_SETMEM(self, p_h_errnop, &_h_errno);
+# if defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__
   THREAD_SETMEM(self, p_resp, &_res);
+# endif
 #endif
 
 #ifndef FLOATING_STACKS




More information about the uClibc-cvs mailing list