Pablo Barrio <pbarrio@xxxxxxxxxx> writes: > In config.log: > > ----------------- > > configure:8845: checking for strsignal > configure:8845: result: yes > ... > configure:10068: checking whether strsignal is declared > configure:10100: result: yes > ... > ac_cv_func_strsignal=yes > ... > gcc_cv_have_decl_strsignal=yes > > ------------------ > > So... the strsignal test didn't fail. In auto-host.h, included by config.h: > > /* Define to 1 if you have the `strsignal' function. */ > #ifndef USED_FOR_TARGET > #define HAVE_STRSIGNAL 1 > #endif > > I've tried to edit auto-host.h to see if HAVE_STRSIGNAL was defined at preprocessing, but the file seems to be autogenerated so my modifications are lost. > > On 02/12/2011, at 16:09, Ian Lance Taylor wrote: > >> Pablo Barrio <pbarrio@xxxxxxxxxx> writes: >> >>> In file included from ../../gcc-v4.6.1/gcc/c-lang.c:24:0: >>> ../../gcc-v4.6.1/gcc/system.h:462:20: error: conflicting types for ‘strsignal’ >>> /usr/include/string.h:566:14: note: previous declaration of ‘strsignal’ was here >> >> Look in gcc/config.h. I predict that HAVE_STRSIGNAL is not defined, >> although your system does have strsignal. Look in gcc/config.log and >> try to find out why the test for strsignal failed. (Please don't top-post. Thanks.) Interesting. The lines from system.h are #if !defined (HAVE_STRSIGNAL) \ || (defined (HAVE_DECL_STRSIGNAL) && !HAVE_DECL_STRSIGNAL) # ifndef strsignal extern const char *strsignal (int); # endif #endif You show above that HAVE_STRSIGNAL is defined. Also setting gcc_cv_have_decl_strsignal implies that HAVE_DECL_STRSIGNAL is defined to 1. In that case I have no idea why that declaration will be compiled. Clearly it is being compiled because you are getting an error about it. I guess I would suggest running the failing compile command with -E and see if you can see what is happening. If you are compiling gcc with another version of gcc, then it may help to use -dD with -E to see where HAVE_STRSIGNAL and HAVE_DECL_STRSIGNAL are being defined. Ian