merge from gcc
authorDJ Delorie <dj@redhat.com>
Thu, 5 Jul 2001 17:29:17 +0000 (17:29 +0000)
committerDJ Delorie <dj@redhat.com>
Thu, 5 Jul 2001 17:29:17 +0000 (17:29 +0000)
libiberty/ChangeLog
libiberty/Makefile.in
libiberty/configure
libiberty/configure.in
libiberty/ffs.c [new file with mode: 0644]

index 43ff94eb80323273324054c844a05675a66f2fc3..c5c391018345d047946233e6a92f07f8a14ec682 100644 (file)
@@ -1,3 +1,9 @@
+2001-07-05  Mark Klein  <mklein@dis.com>
+
+       * Makefile.in: Add ffs.c dependency.
+       * configure.in: Add ffs.c.
+       * ffs.c: New file.
+
 2001-06-18  Richard Henderson  <rth@redhat.com>
 
        * concat.c: Include <sys/types.h>.
index 92b90fa748fdf378ceb966f20c32b416f237b793..66aa510137c61271a082015818d6190e6372af10 100644 (file)
@@ -122,7 +122,7 @@ dvi: dvi-subdir
 # configure.in.
 CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c       \
        bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c           \
-        cp-demangle.c dyn-string.c fdmatch.c fnmatch.c getcwd.c                      \
+        cp-demangle.c dyn-string.c fdmatch.c fnmatch.c ffs.c getcwd.c        \
        getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c                \
        floatformat.c hashtab.c hex.c index.c insque.c lbasename.c            \
        md5.c make-temp-file.c memchr.c                                       \
index 6b0aa209cab57bab0e5e5dae0aeec633eb2485c2..7025397fdfed56f0b34e46f20d0c9699dea86649 100755 (executable)
@@ -1329,6 +1329,7 @@ funcs="$funcs bsearch"
 funcs="$funcs bzero"
 funcs="$funcs calloc"
 funcs="$funcs clock"
+funcs="$funcs ffs"
 funcs="$funcs getcwd"
 funcs="$funcs getpagesize"
 funcs="$funcs index"
@@ -1700,7 +1701,7 @@ else
 fi
 done
 
-  for ac_func in sysconf times sbrk gettimeofday
+  for ac_func in sysconf times sbrk gettimeofday ffs
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 echo "configure:1707: checking for $ac_func" >&5
index 6adf48e2c6bc282f6bf85815dfca4b97d5cd3787..65f94027b1db43f6ec81bf346e660429a3336fe7 100644 (file)
@@ -87,6 +87,7 @@ funcs="$funcs bsearch"
 funcs="$funcs bzero"
 funcs="$funcs calloc"
 funcs="$funcs clock"
+funcs="$funcs ffs"
 funcs="$funcs getcwd"
 funcs="$funcs getpagesize"
 funcs="$funcs index"
@@ -134,7 +135,7 @@ if test "x" = "y"; then
   AC_CHECK_FUNCS(strcasecmp setenv strchr strdup strncasecmp strrchr strstr)
   AC_CHECK_FUNCS(strtod strtol strtoul tmpnam vasprintf vfprintf vprintf)
   AC_CHECK_FUNCS(vsprintf waitpid getrusage on_exit psignal strerror strsignal)
-  AC_CHECK_FUNCS(sysconf times sbrk gettimeofday)
+  AC_CHECK_FUNCS(sysconf times sbrk gettimeofday ffs)
   AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
   AC_DEFINE(HAVE_SYS_NERR,    1, [Define if you have the sys_nerr variable.])
   AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
diff --git a/libiberty/ffs.c b/libiberty/ffs.c
new file mode 100644 (file)
index 0000000..8ffb03e
--- /dev/null
@@ -0,0 +1,29 @@
+/* ffs -- Find the first bit set in the parameter
+
+NAME
+       ffs -- Find the first bit set in the parameter
+
+SYNOPSIS
+       int ffs (int valu)
+
+DESCRIPTION
+       Find the first bit set in the parameter. Bits are numbered from
+       right to left, starting with bit 1.
+
+*/
+
+int
+ffs (valu)
+  register int valu;
+{
+  register int bit;
+
+  if (valu == 0)
+    return 0;
+
+  for (bit = 1; !(valu & 1); bit++)
+       valu >>= 1;
+
+  return bit;
+}
+