小松です。

In the message of [ruby-dev:6819] Re: Ruby 1.3.3-990513 
    on 1999/5/15 17:20:13 WATANABE Hirofumi <eban / os.rim.or.jp> wrote:
|ふつうは <stddef.h> にあるみたいですね.
|#define offsetof(type, member) ((size_t)&(((type *)0)->member))

SunOS 4.1.4の/usr/include/stddef.hには定義がないですが、
gccインストール時にfixincludesによってoffsetofが定義された、
    /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.4/2.8.1/include/stddef.h
が作られてgccはそちらを使います。

[ruby-dev:6790]のパッチではいれませんでしたが、コンパイル時に使った
ext/socket/addrinfo.hの変更で済ませていいような気がしてきました。

# TYPE, MEMBERとなっているのはgccの作ったstddef.hから取ってきた
# ためです。

--- ruby-1.3.3-990513.orig/ext/socket/addrinfo.h	Thu May 13 12:44:18 1999
+++ ruby-1.3.3-990513/ext/socket/addrinfo.h	Fri May 13 22:30:26 1999
@@ -75,2 +75,6 @@
 
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#endif
+
 /* special compatibility hack -- end*/

--
小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>