> ../../../gcc-4.4-20080912/libiberty/strsignal.c:408: > error: conflicting types for 'strsignal' /usr/include/string.h:78: > note: previous declaration of 'strsignal' was here I don't believe fixing the prototypes to match is actually the correct fix. I believe the correct fix is to effectively remove libiberty's strsignal. That is, Cygwin has its own strsignal and libiberty should not contribute its. This stuff isn't autoconfigured, but it is configured. That is, the autoconf code doesn't sniff the system, it just assumes it knows about the system, but it is incorrect. Like so, in 4.3.2 libiberty/configure.ac: before: case "${host}" in *-*-cygwin* | *-*-mingw*) AC_DEFINE(HAVE_SYS_ERRLIST) AC_DEFINE(HAVE_SYS_NERR) ;; esac after: case "${host}" in *-*-mingw*) AC_DEFINE(HAVE_SYS_ERRLIST) AC_DEFINE(HAVE_SYS_NERR) ;; *-*-cygwin*) AC_DEFINE(HAVE_SYS_ERRLIST) AC_DEFINE(HAVE_SYS_NERR) AC_DEFINE(HAVE_STRSIGNAL) ;; esac or maybe, after, better: # this first chunk entirely unchanged case "${host}" in *-*-cygwin* | *-*-mingw*) AC_DEFINE(HAVE_SYS_ERRLIST) AC_DEFINE(HAVE_SYS_NERR) ;; esac # this second chunk added case "${host}" in *-*-cygwin*) AC_DEFINE(HAVE_STRSIGNAL) ;; esac or maybe this stuff should actually be AUTOconfigured and not merely configured.. If linking is ok. - Jay