Building a cross compiler from i686-mingw32 to arm-none-eabi fails after the move to build as C++ because config/arm/neon.md uses ffs but no MinGW header declares ffs (and unlike in C, an implicit declaration of this built-in function can't be used). This patch fixes this issue by making the gcc directory configure check for a declaration, so causing libiberty.h to provide one if needed.
Tested building a cross compiler as described above (fails before the patch, passes afterwards). OK to commit? 2012-08-20 Joseph Myers <jos...@codesourcery.com> * configure.ac (ffs): Check for declaration. * configure, config.in: Regenerate. Index: configure =================================================================== --- configure (revision 190529) +++ configure (working copy) @@ -10288,7 +10288,7 @@ for ac_func in getenv atol asprintf sbrk abort atof getcwd getwd \ strsignal strstr stpcpy strverscmp \ errno snprintf vsnprintf vasprintf malloc realloc calloc \ - free basename getopt clock getpagesize clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked + free basename getopt clock getpagesize ffs clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked do ac_tr_decl=`$as_echo "HAVE_DECL_$ac_func" | $as_tr_cpp` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func is declared" >&5 Index: config.in =================================================================== --- config.in (revision 190529) +++ config.in (working copy) @@ -621,6 +621,12 @@ #endif +/* Define to 1 if we found a declaration for 'ffs', otherwise define to 0. */ +#ifndef USED_FOR_TARGET +#undef HAVE_DECL_FFS +#endif + + /* Define to 1 if we found a declaration for 'fgetc_unlocked', otherwise define to 0. */ #ifndef USED_FOR_TARGET Index: configure.ac =================================================================== --- configure.ac (revision 190529) +++ configure.ac (working copy) @@ -1075,7 +1075,7 @@ gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \ strsignal strstr stpcpy strverscmp \ errno snprintf vsnprintf vasprintf malloc realloc calloc \ - free basename getopt clock getpagesize gcc_UNLOCKED_FUNCS, , ,[ + free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[ #include "ansidecl.h" #include "system.h"]) -- Joseph S. Myers jos...@codesourcery.com