buildrootschalter/package/uclibc/0.9.33.2/uclibc-0029-inet-rpc-fix-build-in-NPTL-case.patch
Peter Korsgaard 055f1c02d3 uclibc: add upstream 0.9.33 fixes
Upstream has a large number of patches lined up for the next 0.9.33.x bugfix
release;

http://git.uclibc.org/uClibc/log/?h=0.9.33

Add them here, as atleast some of them are quite critical (E.G. the eventfd
issue gets triggered by recent glib versions).

I've skipped the microblaze and xtensa fixes as we don't currently support
those with 0.9.33.2.

Drop uclibc-0002-Add-definition-of-MSG_WAITFORONE-and-MSG_CMSG_CMSG_CLOEXE.patch
as that is a subset of uclibc-0035-socket.h-pull-socket_type.h-from-eglibc.patch

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-09-06 15:28:51 +02:00

59 lines
1.8 KiB
Diff

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