Pedro Alves wrote: > m4/inet_pton.m4 has this: > > if test $ac_cv_have_decl_inet_pton = yes; then > dnl It needs to be overridden, because the stdcall calling convention > dnl is not compliant with POSIX. > REPLACE_INET_PTON=1 > INET_PTON_LIB="-lws2_32" > else > HAVE_DECL_INET_PTON=0 > HAVE_INET_PTON=0 > fi > else > > > Given the "stdcall calling convention is not compliant with POSIX", > I wonder whether the right fix would be to somehow cause those > functions to be replaced too?
>From the point of C programs, replacing 'getaddrinfo' and 'freeaddrinfo' is overkill, IMO. Most programs just call these functions the way they are declared in the .h file, through direct call, not through function pointers. I just added some similar replacements for <math.h> functions that are defined as inline functions by MSVC. The justification is that <math.h> functions are occasionally called through function pointers (e.g. you can imagine a 'plot' function, an 'integrate' function, etc. that takes a float->float function as a pointer). >From the point of C++ programs: - if you get an error in the .h file, from the _GL_CXXALIAS_SYS or _GL_CXXALIASWARN invocation for example, or for GNULIB_NAMESPACE, it's worth providing the replacement. - if you only get an error in a SIGNATURE_CHECK, it's probably not worth it. Just conditionalize the the SIGNATURE_CHECK then. But if you want to provide the fix through REPLACE_xxx=1, I won't stop you. Bruno