Sun 26 Jun 2005 02:06:17 PM UTC, comment #2:
noop, I've used the config.h.W32 until recently when I actually succeded in running configure.(!) The ANSI_STRING issue is actually a bug (discussed in april). Look at this:
make.h(280):
-----------------------------------------
#undef ANSI_STRING
/* SCO Xenix has a buggy macro definition in <string.h>. */
#undef strerror
#if !defined(ANSI_STRING) && !defined(__DECC)
extern char *strerror PARAMS ((int errnum));
#endif
-----------------------------------------
=> strerror will always be redeclared unless __DECC
Comment:
MSCRT have in <string.h>
_CRTIMP char * __cdecl strerror(int);
Somehow the compiler just ignore the #undef (can't #undef preprocessed code?) and since I need to compile with __stdcall calling convention (DDK standard) the above declaration will be:
extern char * __stdcall strerror(int);
=> error C2373: 'strerror' : redefinition
Now, don't react on the calling conventions. They can't be the cause of any errors, rather they can expose some overlooked passages in the code. See the last sentence in the bug report.
A compile with __cdecl and explicit switch /TC will not issue this error(not visible or less strict). Recent Microsoft compilers seems to have /TP switch regardless of source-file extension and since security is the main US agenda they tend to be focused on more stricter conditions. Furthermore, I really do want to have maximum diagnostics with a compiler complaining about pretty much everything it feels uncomfortable with.
Anyway under all circumstances, the declaration should not be enabled for Microsoft/Intel/Borland compilers.
regards JB
|