GCC 4.4 - Cygwin build failed in 'strsignal'

Jay jay.krell@cornell.edu
Sat Sep 27 07:31:00 GMT 2008


>  ../../../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



More information about the Gcc-help mailing list