summaryrefslogtreecommitdiff
path: root/package/uclibc/0.9.33.2/uclibc-0029-inet-rpc-fix-build-in-NPTL-case.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/uclibc/0.9.33.2/uclibc-0029-inet-rpc-fix-build-in-NPTL-case.patch')
-rw-r--r--package/uclibc/0.9.33.2/uclibc-0029-inet-rpc-fix-build-in-NPTL-case.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/package/uclibc/0.9.33.2/uclibc-0029-inet-rpc-fix-build-in-NPTL-case.patch b/package/uclibc/0.9.33.2/uclibc-0029-inet-rpc-fix-build-in-NPTL-case.patch
new file mode 100644
index 000000000..716052a15
--- /dev/null
+++ b/package/uclibc/0.9.33.2/uclibc-0029-inet-rpc-fix-build-in-NPTL-case.patch
@@ -0,0 +1,58 @@
+From 3a732cacd650bd39d86ac13ba0f57eee0df82d5a Mon Sep 17 00:00:00 2001
+From: Carmelo Amoroso <carmelo.amoroso@st.com>
+Date: Wed, 14 Mar 2012 15:21:36 +0100
+Subject: [PATCH] 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>
+---
+ libc/inet/rpc/auth_none.c | 6 ++++++
+ libc/inet/rpc/rpc_private.h | 1 +
+ 2 files changed, 7 insertions(+)
+
+diff --git a/libc/inet/rpc/auth_none.c b/libc/inet/rpc/auth_none.c
+index d066f6b..70bee5b 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 e1214d2..38ade1c 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 */
+--
+1.7.10.4
+