Backport #4231
closedconfigure.bat --with-winsock2 が socket/extconf.rbに効いていない
Added by katonbo (Masahiro Kitajima) almost 14 years ago. Updated over 13 years ago.
Description
=begin
win32/configure.bat の --with-winsock2 オプションが、ext/socket/extconf.rb に伝わるようになっていないために、socket.so が ws2_32.dll をリンクせず、常に wsock32.dll をリンクしています。
=end
Updated by shyouhei (Shyouhei Urabe) almost 14 years ago
- Status changed from Open to Assigned
- Assignee set to usa (Usaku NAKAMURA)
=begin
=end
Updated by shyouhei (Shyouhei Urabe) almost 14 years ago
=begin
(2011/01/05 15:04), KOSAKI Motohiro wrote:
wikipediaで調べたところ、Windows98以降でwinsock2が使えるようですので
winsock1のサポートを打ち切るってのが一番簡単だと思うのですがどうでしょうか
将来のバージョンについては完璧に同意しますが、1.8.7に関して今サポートしてるも
のを突如打ち切るのはさすがに躊躇してしまいます。
=end
Updated by usa (Usaku NAKAMURA) almost 14 years ago
=begin
こんにちは、なかむら(う)です。
In message "[ruby-dev:42946] Re: [Ruby 1.8-Bug#4231][Open] configure.bat --with-winsock2 が socket/extconf.rbに効いていない"
on Jan.05,2011 15:04:37, kosaki.motohiro@jp.fujitsu.com wrote:
Bug #4231: configure.bat --with-winsock2 が socket/extconf.rbに効いていない
http://redmine.ruby-lang.org/issues/show/4231起票者: Masahiro Kitajima
ステータス: Open, 優先度: Normal
ruby -v: ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32]win32/configure.bat の --with-winsock2 オプションが、ext/socket/extconf.rb に伝わるようになっていないために、socket.so が ws2_32.dll をリンクせず、常に wsock32.dll をリンクしています。
wikipediaで調べたところ、Windows98以降でwinsock2が使えるようですので
winsock1のサポートを打ち切るってのが一番簡単だと思うのですがどうでしょうか
1.8の途中でwinsock2サポートを入れたときに、1.8は互換性維持の
ため選択性、1.9はwinsock2必須、と決断しました。
今になって覆す理由はないと感じます。
それでは。¶
U.Nakamura usa@garbagecollect.jp
=end
Updated by usa (Usaku NAKAMURA) almost 14 years ago
=begin
こんにちは、なかむら(う)です。
In message "[ruby-dev:42945] [Ruby 1.8-Bug#4231][Open] configure.bat --with-winsock2 が socket/extconf.rbに効いていない"
on Jan.05,2011 14:52:04, redmine@ruby-lang.org wrote:
win32/configure.bat の --with-winsock2 オプションが、ext/socket/extconf.rb に伝わるようになっていないために、socket.so が ws2_32.dll をリンクせず、常に wsock32.dll をリンクしています。
ご指摘のバグはありますけど、なんかうまいことws2_32.dllにもリ
ンクされてますね。
なのでバグってるけど結果はオーライだという...
ちなみに、htonl()とntohs()だけがsocket.soからwinsock32.dllか
らリンクされ(これらはws2_32.dllにforwardされる)、getaddrinfo()、
getnameinfo()、freeaddrinfo()がws2_32.dllからリンクされるよう
になると思います。
(残りのwinsock関数はruby本体がリンクするので問題ない)
それでは。¶
U.Nakamura usa@garbagecollect.jp
=end
Updated by katonbo (Masahiro Kitajima) almost 14 years ago
=begin
ところで、1.8.7は--with-winsock2が効いてない状況で3年バグ報告が
なかったのだから実害が出るまで放置ってのはダメなんでしょうか?
winsock2 対応版を使っているつもりで wsock32.dll を使っている人
が居るはずですが、問題は表面化しないのかも知れませんね。
バイナリ配布物では、
arton さんの ActiveScriptRuby(1.8.7.35) の socket.so は wsock32.dll、
usa さんの ruby-1.9.2-p136-i386-mswin32.zip の socket.so は ws2_32.dll
がリンクされていました。
実はこのバグは[ruby-dev:42944] [Ruby 1.8-Bug#4230]の修正に関係してたりする??
あっちはlocalhostが動かないとか言ってるから必要度が高いと思ってるのですが。
これは別問題でである事を確認しています。
wsock32.dll、ws2_32.dll で現象に違いはありませんでした。
--
北島雅博(かとんぼ)
=end
Updated by usa (Usaku NAKAMURA) almost 14 years ago
- Assignee changed from usa (Usaku NAKAMURA) to shyouhei (Shyouhei Urabe)
=begin
で、えーと、現状実害はなくて、ruby_1_8_7とruby_1_8_6のみにこの問題があって、ruby_1_8のr30401をバックポートすればこの問題は直る、というのが私の見解です。
で、本件は実害ないからどうでもいいですが、r30401はいずれにせよバックポートして欲しいなーと思っています。
=end
Updated by shyouhei (Shyouhei Urabe) over 13 years ago
- Status changed from Assigned to Feedback
30401をバックポートしてみたんですがどんなもんでしょう
Updated by usa (Usaku NAKAMURA) over 13 years ago
- Status changed from Feedback to Closed
VC6とVC10で確認しましたが、意図通りになってるように見えるので、closeします。