diff options
-rw-r--r-- | include/string.h | 8 | ||||
-rw-r--r-- | libc/inet/rpc/svc.c | 3 | ||||
-rw-r--r-- | libc/string/ffs.c | 11 | ||||
-rw-r--r-- | libc/string/ffsll.c | 14 |
4 files changed, 12 insertions, 24 deletions
diff --git a/include/string.h b/include/string.h index 66f64e7d1..c71a85c9f 100644 --- a/include/string.h +++ b/include/string.h @@ -374,6 +374,7 @@ extern char *rindex (__const char *__s, int __c) /* Return the position of the first bit set in I, or 0 if none are set. The least-significant bit is position 1, the most-significant 32. */ extern int ffs (int __i) __THROW __attribute__ ((__const__)); +libc_hidden_proto(ffs) /* The following two functions are non-standard but necessary for non-32 bit platforms. */ @@ -385,13 +386,6 @@ __extension__ extern int ffsll (long long int __ll) # endif # endif -#ifdef _LIBC -extern __typeof(ffs) __libc_ffs; -libc_hidden_proto(__libc_ffs); -extern __typeof(ffsll) __libc_ffsll; -libc_hidden_proto(__libc_ffsll) -#endif - /* Compare S1 and S2, ignoring case. */ extern int strcasecmp (__const char *__s1, __const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2)); diff --git a/libc/inet/rpc/svc.c b/libc/inet/rpc/svc.c index 03b406200..b28485de3 100644 --- a/libc/inet/rpc/svc.c +++ b/libc/inet/rpc/svc.c @@ -41,6 +41,7 @@ #include <errno.h> #include <unistd.h> +#include <string.h> #include "rpc_private.h" #include <rpc/svc.h> #include <rpc/pmap_clnt.h> @@ -452,7 +453,7 @@ svc_getreqset (fd_set *readfds) setsize = _rpc_dtablesize (); maskp = (u_int32_t *) readfds->fds_bits; for (sock = 0; sock < setsize; sock += 32) - for (mask = *maskp++; (bit = __libc_ffs (mask)); mask ^= (1 << (bit - 1))) + for (mask = *maskp++; (bit = ffs (mask)); mask ^= (1 << (bit - 1))) svc_getreq_common (sock + bit - 1); } libc_hidden_def(svc_getreqset) diff --git a/libc/string/ffs.c b/libc/string/ffs.c index 4a5336d47..f39d304b7 100644 --- a/libc/string/ffs.c +++ b/libc/string/ffs.c @@ -6,11 +6,9 @@ */ #include <limits.h> -#define ffsl __something_else -#include "_string.h" -#undef ffsl +#include <string.h> -int __libc_ffs(int i) +int ffs(int i) { #if 1 /* inlined binary search method */ @@ -51,8 +49,7 @@ int __libc_ffs(int i) return n; #endif } -libc_hidden_def(__libc_ffs) -weak_alias(__libc_ffs,ffs) +libc_hidden_def(ffs) #if ULONG_MAX == UINT_MAX -weak_alias (__libc_ffs, ffsl) +strong_alias_untyped(ffs, ffsl) #endif diff --git a/libc/string/ffsll.c b/libc/string/ffsll.c index 29e9ba9d9..a7662900b 100644 --- a/libc/string/ffsll.c +++ b/libc/string/ffsll.c @@ -18,23 +18,19 @@ 02111-1307 USA. */ #include <limits.h> -#define ffsl __something_else -#include "_string.h" -#undef ffsl +#include <string.h> /* Find the first bit set in I. */ -int __libc_ffsll (long long int i) +int ffsll (long long int i) { unsigned long long int x = i & -i; if (x <= 0xffffffff) - return __libc_ffs (i); + return ffs (i); else - return 32 + __libc_ffs (i >> 32); + return 32 + ffs (i >> 32); } -libc_hidden_def(__libc_ffsll) -weak_alias (__libc_ffsll, ffsll) #if ULONG_MAX != UINT_MAX -weak_alias (__libc_ffsll, ffsl) +strong_alias_untyped(ffsll, ffsl) #endif |