おかもとです。

> |  WNOHANG は sys/wait.h で定義されてます。どうも configure で
> | 拾ってくれないようなので、とりあえずコンパイルするには
> |
> |#include <sys/wait.h>
> | 
> | を process.c と pty.c の頭に入れれば OK でした(1.4.0 の場合)。
> 
> むむ。ということは問題はなぜ sys/wait.h の検出に失敗するかで
> すね。config.cacheを消してからconfigureしたconfig.logの内容
> が見れればすこしは分かると思うのですが。

 NeXT Step 4.2J 上で ruby-1.4.5 の config.log の該当部分です。

---- ここから
configure:2201: checking for sys/wait.h that is POSIX.1 compatible
configure:2222: cc -c -g -O2  conftest.c 1>&5
configure: In function `main':
configure:2217: warning: passing arg 1 of `wait' from incompatible pointer type
configure:2218: request for member `w_S' in something not a structure or union
configure:2218: request for member `w_T' in something not a structure or union
configure: failed program was:
#line 2206 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
#ifndef WEXITSTATUS
#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
#endif
#ifndef WIFEXITED
#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
#endif
int main() {
int s;
wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
----- ここまで

  上記のようになるので、修正無しでは

process.c: In function `rb_waitpid':
process.c:88: `WNOHANG' undeclared (first use this function)
process.c:88: (Each undeclared identifier is reported only once
process.c:88: for each function it appears in.)
*** Exit 1
Stop.

 としてコンパイルが止まってしまいます。


 また、

> OpenStep 4.2 Machでは
> 
>   * strdupがなく(またはstring.hがなく)
 
 ですが、NeXT Step 4.2J では string.h はさすがにあります。

/usr/include/ansi/string.h

  ただ、strdup は無いようです。grep で探してもありませんでした。

-------------------------------------
おかもと のりゆき(Noriyuki Okamoto)
okamoto / ish.ic.kanagawa-it.ac.jp