aboutsummaryrefslogtreecommitdiff
path: root/gnulib/import/m4/ffs.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib/import/m4/ffs.m4')
-rw-r--r--gnulib/import/m4/ffs.m432
1 files changed, 32 insertions, 0 deletions
diff --git a/gnulib/import/m4/ffs.m4 b/gnulib/import/m4/ffs.m4
new file mode 100644
index 0000000..b6e6b31
--- /dev/null
+++ b/gnulib/import/m4/ffs.m4
@@ -0,0 +1,32 @@
+# ffs.m4 serial 4
+dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FFS],
+[
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+
+ dnl We can't use AC_CHECK_FUNC here, because ffs() is defined as a
+ dnl static inline function when compiling for Android 4.2 or older.
+ dnl But require that ffs() is declared; otherwise we may be using
+ dnl the GCC built-in function, which leads to warnings
+ dnl "warning: implicit declaration of function 'ffs'".
+ AC_CACHE_CHECK([for ffs], [gl_cv_func_ffs],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <strings.h>
+ int x;
+ ]],
+ [[int (*func) (int) = ffs;
+ return func (x);
+ ]])
+ ],
+ [gl_cv_func_ffs=yes],
+ [gl_cv_func_ffs=no])
+ ])
+ if test $gl_cv_func_ffs = no; then
+ HAVE_FFS=0
+ fi
+])