summaryrefslogtreecommitdiff
path: root/libc/string/ffs.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2011-02-23 00:14:42 +0100
committerBernd Schmidt <bernds@codesourcery.com>2011-03-05 19:48:10 +0100
commit2a19c1339d6bf46fe0f90fbd4e8dca6646d111ed (patch)
treea9e8cc3663e4904042c39b14eef15f30d652c923 /libc/string/ffs.c
parent9b1507df250e90b74099e0d05170d7d95060b016 (diff)
Implement ffsl and ffsll.
This imports and adapts ffsll.c from glibc. The same mechanism as in glibc is used to choose between ffs and ffsll to implement ffsl. The single user in libc is changed to use the hidden version __libc_ffs. Signed-off-by: Bernd Schmidt <bernds@codesourcery.com> Acked-by: Bernhard Reutner-Fischer <aldot@uclibc.org>
Diffstat (limited to 'libc/string/ffs.c')
-rw-r--r--libc/string/ffs.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libc/string/ffs.c b/libc/string/ffs.c
index 22efe4a1e..4a5336d47 100644
--- a/libc/string/ffs.c
+++ b/libc/string/ffs.c
@@ -5,12 +5,12 @@
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
*/
-/* ffsl,ffsll */
-
+#include <limits.h>
+#define ffsl __something_else
#include "_string.h"
-
-
-int ffs(int i)
+#undef ffsl
+
+int __libc_ffs(int i)
{
#if 1
/* inlined binary search method */
@@ -51,4 +51,8 @@ int ffs(int i)
return n;
#endif
}
-libc_hidden_def(ffs)
+libc_hidden_def(__libc_ffs)
+weak_alias(__libc_ffs,ffs)
+#if ULONG_MAX == UINT_MAX
+weak_alias (__libc_ffs, ffsl)
+#endif