[git commit future 1/1] utent.c: go back to use static __X() functions without size increase

Peter Mazinger ps.m at gmx.net
Wed Mar 16 16:34:02 UTC 2011


> commit:
> http://git.uclibc.org/uClibc/commit/?id=2d1c02a9baa2a25315e5b5473f903fcae100e383 branch:
> http://git.uclibc.org/uClibc/commit/?id=refs/heads/future __X() {...} and strong_alias(__X,X) keeps size the same as X() {...}
> Signed-off-by: Peter S. Mazinger <ps.m at gmx.net> --- libc/misc/utmp/utent.c
> | 37 +++++++++++++++++-------------------- 1 files changed, 17
> insertions(+), 20 deletions(-) diff --git a/libc/misc/utmp/utent.c
> b/libc/misc/utmp/utent.c index f97cad3..07ca44e 100644 --- a/libc/misc/utmp/utent.c +++
> b/libc/misc/utmp/utent.c @@ -24,27 +24,14 @@ #include <bits/uClibc_mutex.h>
> __UCLIBC_MUTEX_STATIC(utmplock, PTHREAD_MUTEX_INITIALIZER); - -/* Do not create
> extra unlocked functions if no locking is needed */ -#if defined
> __UCLIBC_HAS_THREADS__ -# define static_if_threaded static -#else -# define
> static_if_threaded /* nothing */ -# define __setutent setutent -# define __getutent
> getutent -# define __getutid getutid -#endif - - /* Some global crap */
> static int static_fd = -1;
> static struct utmp static_utmp; static const char default_file_name[] =
> _PATH_UTMP; static const char *static_ut_name = default_file_name; - /* This
> function must be called with the LOCK held */ -static_if_threaded void
> __setutent(void) +static void __setutent(void) { if (static_fd < 0) {
> 	static_fd = open_not_cancel_2(static_ut_name, O_RDWR | O_CLOEXEC); @@ -69,11 +56,13
> @@ void setutent(void) __setutent(); __UCLIBC_MUTEX_UNLOCK(utmplock); }
> +#else +strong_alias(__setutent,setutent) #endif libc_hidden_def(setutent) /*
> This function must be called with the LOCK held */ -static_if_threaded
> struct utmp *__getutent(void) +static struct utmp *__getutent(void) { if
> (static_fd < 0) { 	__setutent(); @@ -98,10 +87,12 @@ struct utmp *getutent(void)
> __UCLIBC_MUTEX_UNLOCK(utmplock); return ret; } +#else
> +strong_alias(__getutent,getutent) #endif libc_hidden_def(getutent) -void endutent(void)
> +static void __endutent(void) { __UCLIBC_MUTEX_LOCK(utmplock); if (static_fd >=
> 0) @@ -109,10 +100,11 @@
> void endutent(void) static_fd = -1; __UCLIBC_MUTEX_UNLOCK(utmplock); }
> +strong_alias(__endutent,endutent) libc_hidden_def(endutent) /* This function
> must be called with the LOCK held */ -static_if_threaded struct utmp
> *__getutid(const struct utmp *utmp_entry) +static struct utmp *__getutid(const
> struct utmp *utmp_entry) { struct utmp *lutmp; unsigned type; @@ -145,10
> +137,12 @@ struct utmp *getutid(const struct utmp *utmp_entry)
> __UCLIBC_MUTEX_UNLOCK(utmplock); return ret; } +#else +strong_alias(__getutid,getutid)
> #endif libc_hidden_def(getutid) -struct utmp *getutline(const struct utmp
> *utmp_entry) +static struct utmp *__getutline(const struct utmp *utmp_entry) {
> struct utmp *lutmp; @@ -163,9 +157,10 @@ struct utmp *getutline(const struct
> utmp *utmp_entry) __UCLIBC_MUTEX_UNLOCK(utmplock); return lutmp; }
> +strong_alias(__getutline,getutline) libc_hidden_def(getutline) -struct utmp
> *pututline(const struct utmp *utmp_entry) +static struct utmp *__pututline(const
> struct utmp
> *utmp_entry) { __UCLIBC_MUTEX_LOCK(utmplock); /* Ignore the return value.
> That way, if they've already positioned @@ -182,9 +177,10 @@ struct utmp
> *pututline(const struct utmp *utmp_entry) __UCLIBC_MUTEX_UNLOCK(utmplock);
> return (struct utmp *)utmp_entry; } +strong_alias(__pututline,pututline)
> libc_hidden_def(pututline) -int utmpname(const char *new_ut_name) +static int
> __utmpname(const char *new_ut_name) { __UCLIBC_MUTEX_LOCK(utmplock); if
> (new_ut_name != NULL) { @@ -205,4 +201,5 @@ int utmpname(const char
> *new_ut_name) __UCLIBC_MUTEX_UNLOCK(utmplock); return 0; /* or maybe return
> -(static_ut_name != new_ut_name)? */ } +strong_alias(__utmpname,utmpname)
> libc_hidden_def(utmpname) -- 1.7.3.4_____________________________________________
> uClibc-cvs mailing list uClibc-cvs at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc-cvs 
> 
> 
> Hi,
> 
> Let's please use a "__libc_" prefix instead of just double underscore
> (everywhere).

Hi,

I have thought (asked about it and interpreted the answer as follows) that we use __libc_X() if we need the visible function in another library delivered with uClibc (librt, libpthread), even if the X() function is the same.

In this case I do not even reuse it out of this file (being static)

Peter
-- 
NEU: FreePhone - kostenlos mobil telefonieren und surfen!			
Jetzt informieren: http://www.gmx.net/de/go/freephone


More information about the uClibc-cvs mailing list