[#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:39683] Re: Ruby 1.8.1 on SX-6

From: Masaki Hasegawa <masaki-h@...4u.or.jp>
Date: 2004-05-19 17:39:43 UTC
List: ruby-list #39683
From: nobu.nakada@nifty.ne.jp
Subject: [ruby-list:39682] Re: Ruby 1.8.1 on SX-6

> have_typeというのもあります。

ご教示ありがとうございます。
しかし残念なことに、

!  if have_type('struct cmsghdr', ['sys/types.h', 'sys/socket.h'])
!    have_struct_member('struct msghdr', 'msg_control', ['sys/types.h', 'sys/socket.h'])
!  end

これではうまくいきませんでした。

have_type では

  static struct cmsghdr t;
と
  static struct cmsghdr *t;

の両方がテストされますが、前者は fatal となるものの、
後者が通ってしまいました。このときの mkmf.log です:

--------------------

have_type: checking for struct cmsghdr... -------------------- yes

"cc -c -I/home/XXXX/ruby-1.8.1 -I/home/XXXX/ruby-1.8.1
-Dss_family=__ss_family -Dss_len=__ss_len -g   conftest.c"
"conftest.c", line 6: warning(177): variable "t" was declared but never
          referenced
  static struct cmsghdr t;
                        ^

"conftest.c", line 6: fatal(235): variable "t" was declared with a
          never-completed type
  static struct cmsghdr t;
                        ^

checked program was:
/* begin */

#include <sys/types.h>
#include <sys/socket.h>

/*top*/
static struct cmsghdr t;
/* end */

"cc -c -I/home/XXXX/ruby-1.8.1 -I/home/XXXX/ruby-1.8.1
-Dss_family=__ss_family -Dss_len=__ss_len -g   conftest.c"
"conftest.c", line 6: warning(177): variable "t" was declared but never
          referenced
  static struct cmsghdr *t;
                         ^

checked program was:
/* begin */

#include <sys/types.h>
#include <sys/socket.h>

/*top*/
static struct cmsghdr *t;
/* end */

--------------------

In This Thread