diff --git a/include/ChangeLog b/include/ChangeLog
index 379b0850413e9483a06c30323e49690f8d63860c..ddb2b1a45a4c5f40eb472090ceff97234f29c6df 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2005-03-28  Mark Mitchell <mark@codesourcery.com>
+
+	* libiberty.h (ffs): Declare, if necessary.
+	
 2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
 	* xregex2.h (_RE_ARGS): Remove definition and uses.
diff --git a/include/libiberty.h b/include/libiberty.h
index a06421037268dbcd500210563add5120ad9e175d..f1d4f464afbe75e4afd1fa9f27ea8c1edd5ef092 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -138,6 +138,13 @@ extern char *libiberty_concat_ptr;
 
 extern int fdmatch (int fd1, int fd2);
 
+/* Return the position of the first bit set in the argument.  */
+/* Prototypes vary from system to system, so we only provide a
+   prototype on systems where we know that we need it.  */
+#if defined (HAVE_DECL_FFS) && !HAVE_DECL_FFS
+extern int ffs(int);
+#endif
+
 /* Get the working directory.  The result is cached, so don't call
    chdir() between calls to getpwd().  */