The socket extension in core Ruby does not link due to a missing inet_ntop, which was added during the Solaris 10 series (10u7, I believe).
This patch gets it compiling again by creating a static inet_ntop (same as in getaddrbyname.c) on systems that do not have it. This definitely happens on 2.3.1 and definitely does not happen on 2.1.9. Not sure about 2.2.
The socket extension in core Ruby does not link due to a
missing inet_ntop, which was added during the Solaris 10
series (10u7, I believe).
This patch gets it compiling again by creating a static
inet_ntop (same as in getaddrbyname.c) on systems that do not
have it. This definitely happens on 2.3.1 and definitely does
not happen on 2.1.9. Not sure about 2.2.
That suggests we have a bug in the build system about detecting
and setting the correct flags for linkage and headers.
It's been many years since I touched Solaris, but I'm fairly
sure the function existed in 8, even if it's a different
signature as gnulib docs indicates:
That suggests we have a bug in the build system about detecting
and setting the correct flags for linkage and headers.
Not build system, but code itself. In ancdata.c, inet_ntop() is used without checking HAVE_INET_NTOP.
This might occur on every OS whose HAVE_INET_NTOP is 0.
The patch may work, but I think having the same code in two files is not good idea.