On Tue, Oct 12, 2010 at 11:44 PM, U.Nakamura <usa / garbagecollect.jp> wrote:
> Hello,
>
>> Here is a patch for VC.
>
> Luis, how do you think this patch?
>

While patch applies and solve the redefinition (good), it raises again
the broken IPv6 issue with undefined references:

<pre><code>
gcc -shared -s -o ../../.ext/i386-mingw32/socket.so init.o constants.o
basicsocket.o socket.o ipsocket.o tcpsocket.o tcpserver.o
sockssocket.o udpsocket.o unixsocket.o unixserver.o option.o ancdata.o
raddrinfo.o getaddrinfo.o getnameinfo.o
-L. -L../.. -L.  -Wl,--enable-auto-image-base,--enable-auto-import
socket-i386-mingw32.def  -lmsvcrt-ruby191 -lws2_32  -lshell32 -lws2_32
-limagehlp
getaddrinfo.o: In function `get_addr':
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getaddrinfo.c:587:
undefined reference to `getipnodebyname'
getaddrinfo.o: In function `get_name':
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getaddrinfo.c:543:
undefined reference to `getipnodebyaddr'
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getaddrinfo.c:555:
undefined reference to `freehostent__compat'
getaddrinfo.o: In function `get_addr':
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getaddrinfo.c:660:
undefined reference to `freehostent__compat'
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getaddrinfo.c:590:
undefined reference to `getipnodebyname'
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getaddrinfo.c:669:
undefined reference to `freehostent__compat'
getaddrinfo.o: In function `get_name':
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getaddrinfo.c:564:
undefined reference to `freehostent__compat'
getnameinfo.o: In function `getnameinfo__compat':
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getnameinfo.c:227:
undefined reference to `getipnodebyaddr'
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getnameinfo.c:240:
undefined reference to `freehostent__compat'
C:\Users\Luis\Projects\oss\oci\rubyinstaller\sandbox\ruby19_build\ext\socket/../../../../../../ruby/ext/socket/getnameinfo.c:246:
undefined reference to `freehostent__compat'
collect2: ld returned 1 exit status
</code></pre>

Which I think was solved in r24517:

http://redmine.ruby-lang.org/issues/show/1834

To quote your 3rd point in that ticket:

"(3) link errors with --enable-wide-getaddrinfo is ruby's bug."

-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupy