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