Hi, The file libiberty/xstrerror.c contains the following fragment
#ifdef VMS #include <errno.h> #if !defined (__STRICT_ANSI__) && !defined (__HIDE_FORBIDDEN_NAMES) extern char *strerror (int,...); #define DONT_DECLARE_STRERROR #endif #endif /* VMS */ #ifndef DONT_DECLARE_STRERROR extern char *strerror (int); #endif Since we have been requiring ISO C90 now (and libiberty has been almost completely converted to ISO C minus K&R style definition), I'm wondering wheter the above declaration of strerror should not be replaced with a #include <string.h> which brings in the proper system-supplied declaration. I'm very willing to believe that VMS may still need some special treatments (for lack of actual recent extensive experience with that plateform) but I think that for the vast majority of supported host+build plateforms, it would suffice to #include <string.h> and dispence with the #ifndef ad hockery. (The reason that pops up is that a C++ compiler -- namely g++ on my system -- cannot agree with the redeclaration since it is not properly surrounded with the appropriate extern block, and I suspect that some plateforms may add "transparent" exception specification). Do you agree that the declaration could safely be replaced with a #include <string.h>? Thanks, -- Gaby