[#39671] Ruby 1.8.1 on SX-6 — Masaki Hasegawa <masaki-h@...4u.or.jp>

はじめまして、長谷川 と申します。

16 messages 2004/05/19
[#39673] Re: Ruby 1.8.1 on SX-6 — Tanaka Akira <akr@...17n.org> 2004/05/19

In article <20040519.205107.102564296.suuchi29@naps.kishou.go.jp>,

[ruby-list:39681] Re: Ruby 1.8.1 on SX-6

From: Masaki Hasegawa <masaki-h@...4u.or.jp>
Date: 2004-05-19 16:59:44 UTC
List: ruby-list #39681
> そのコンパイルエラーの原因を extconf.rb で検出するのが適切だと思います。
(中略)
> このような変更は本質的でない上、保守性を落すので受け入れられません。
> 
> たとえば、きっとこの変更では SX-4 には対応できませんよね。

では、次のような対応ではいかがでしょう?

*** ext/socket/extconf.rb.org   Tue Oct 14 18:15:15 2003
--- ext/socket/extconf.rb       Thu May 20 01:41:52 2004
***************
*** 197,199 ****
  if have_func("sendmsg") | have_func("recvmsg")
!  have_struct_member('struct msghdr', 'msg_control', ['sys/types.h', 'sys/socket.h'])
    have_struct_member('struct msghdr', 'msg_accrights', ['sys/types.h', 'sys/socket.h'])
--- 197,201 ----
  if have_func("sendmsg") | have_func("recvmsg")
!  if have_struct_member('struct cmsghdr', 'cmsg_len', ['sys/types.h', 'sys/socket.h'])
!    have_struct_member('struct msghdr', 'msg_control', ['sys/types.h', 'sys/socket.h'])
!  end
    have_struct_member('struct msghdr', 'msg_accrights', ['sys/types.h', 'sys/socket.h'])


ext/socket/socket.c において、HAVE_ST_MSG_CONTROL な場合には
存在するものとして扱われている struct cmsghdr について、その
メンバ cmsg_len が使われていますので、これを条件としました。

In This Thread