summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2012-03-14 15:21:36 +0100
committerCarmelo Amoroso <carmelo.amoroso@st.com>2012-03-26 09:54:49 +0200
commit21d6091b0de9448e9f160904b0b35d2cc764a4ea (patch)
tree9d5213a97bd8e8a85237f3025bf917b9fe78ef12
parentc3393906d84d0d9cb7d688e0f2bbf8cde92190a2 (diff)
inet:rpc: fix build in !NPTL case
__libc_once is not available / needed when multithreading support is not enabled, so authnone_create() calls authnone_create_once() directly. When LT.{old,new} is used instead of NPTL, it needs to explicitly include <bits/libc-lock.h> to get __libc_once to be visible. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
-rw-r--r--libc/inet/rpc/auth_none.c6
-rw-r--r--libc/inet/rpc/rpc_private.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/libc/inet/rpc/auth_none.c b/libc/inet/rpc/auth_none.c
index d066f6b5d..70bee5b57 100644
--- a/libc/inet/rpc/auth_none.c
+++ b/libc/inet/rpc/auth_none.c
@@ -68,7 +68,9 @@ struct authnone_private_s {
};
static struct authnone_private_s authnone_private;
+#ifdef __UCLIBC_HAS_THREADS__
__libc_once_define(static, authnone_private_guard);
+#endif
static void authnone_create_once (void);
@@ -95,7 +97,11 @@ authnone_create_once (void)
AUTH *
authnone_create (void)
{
+#ifdef __UCLIBC_HAS_THREADS__
__libc_once (authnone_private_guard, authnone_create_once);
+#else
+ authnone_create_once();
+#endif
return &authnone_private.no_client;
}
libc_hidden_def(authnone_create)
diff --git a/libc/inet/rpc/rpc_private.h b/libc/inet/rpc/rpc_private.h
index e1214d256..38ade1ce5 100644
--- a/libc/inet/rpc/rpc_private.h
+++ b/libc/inet/rpc/rpc_private.h
@@ -12,6 +12,7 @@ extern u_long _create_xid (void) attribute_hidden;
*/
#ifdef __UCLIBC_HAS_THREADS__
#include <pthread.h>
+#include <bits/libc-lock.h>
struct rpc_thread_variables {
fd_set svc_fdset_s; /* Global, rpc_common.c */
struct rpc_createerr rpc_createerr_s; /* Global, rpc_common.c */