summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/string.h8
-rw-r--r--libc/inet/rpc/svc.c3
-rw-r--r--libc/string/ffs.c11
-rw-r--r--libc/string/ffsll.c14
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