On 14/03/2012 15.56, Carmelo AMOROSO wrote: > __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.amor...@st.com> > --- > libc/inet/rpc/auth_none.c | 6 ++++++ > libc/inet/rpc/rpc_private.h | 1 + > 2 files changed, 7 insertions(+), 0 deletions(-) > > 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 */
Applied. Carmelo _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc