diff options
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.patch | 58 |
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 + |