diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2011-02-23 00:14:42 +0100 |
---|---|---|
committer | Bernd Schmidt <bernds@codesourcery.com> | 2011-03-05 19:48:10 +0100 |
commit | 2a19c1339d6bf46fe0f90fbd4e8dca6646d111ed (patch) | |
tree | a9e8cc3663e4904042c39b14eef15f30d652c923 /libc/string/ffs.c | |
parent | 9b1507df250e90b74099e0d05170d7d95060b016 (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.c | 16 |
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 |