Bug #12645
closed
ext/socket fails to link on some Solaris 10 versions
Added by jkeiser (John Keiser) almost 8 years ago.
Updated over 7 years ago.
Description
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.
Files
patch (1.02 KB)
patch |
|
jkeiser (John Keiser), 08/01/2016 08:16 PM
|
|
john@johnkeiser.com wrote:
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:
https://bogomips.org/mirrors/gnulib.git/plain/doc/posix-functions/inet_ntop.texi
- Status changed from Open to Feedback
Please show the mkmf.log file.
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.
- Status changed from Feedback to Open
Does removing static
from inet_ntop
in option.c work?
- Status changed from Open to Closed
Applied in changeset r55797.
socket/option.c: inet_ntop
- ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
the fallback definition. [ruby-core:76646] [Bug #12645]
- Backport set to 2.1: DONTNEED, 2.2: UNKNOWN, 2.3: REQUIRED
- Backport changed from 2.1: DONTNEED, 2.2: UNKNOWN, 2.3: REQUIRED to 2.1: DONTNEED, 2.2: REQUIRED, 2.3: REQUIRED
- Backport changed from 2.1: DONTNEED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: DONTNEED, 2.2: DONE, 2.3: REQUIRED
ruby_2_2 r55926 merged revision(s) 55797.
- Backport changed from 2.1: DONTNEED, 2.2: DONE, 2.3: REQUIRED to 2.1: DONTNEED, 2.2: DONE, 2.3: DONE
ruby_2_3 r55960 merged revision(s) 55797.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0