わたなべです。

WATANABE Tetsuya <tetsu / jpn.hp.com> writes:

> これ以外に inline の使いかたが HP-UX では対応してい
> ないものなので
> 
> #define inline
> 
> を追加しています。

missing/strftime.cで使っているinlineとruby.hで使われている
inlineと似ているんですが、どのあたりがまずいんでしょうか?

> まず missing/strftime.c が選択されるのですが、これが
> うまくコンパイルできません。altzone をサポートしてい
> ないことと、timezone 変数の型のミスマッチがあります
> (このミスマッチを解消しても altzone がないので使えま
> せん)。
> 
> HAVE_TZNAME
> 
> になっていますが、これが想定されているものとあってい
> ないのかな。

HP-UXにstrftime(3)があるんならコンパイルできるようにするよりも、

> CVS の最新のソースコードでは、missing/strftime.c は、
> 選択されずコンパイルされないので、いままで確認してい
> ませんでした。そのため気がつくのがいまごろ...
> 
> autoconf は 2.53 を使っています。現在 Ruby では 2.57 
> を使っているようですね。missing/strftime.c の選択は、
> この辺の差でしょうか。

こちらを調査したほうがいいと思います。
たとえばlinuxでは成功するんですが、config.logのその部分は

configure:10142: checking for strftime
configure:10186: gcc -o conftest -Os   conftest.c -ldl -lcrypt -lm  >&5
configure:10189: $? = 0
configure:10192: test -s conftest
configure:10195: $? = 0
configure:10206: result: yes

となってます。HP-UXではどうなってますか?

> ld に対して「-Wl,-E」を渡していますが、これはフロン
> トエンドとして cc のときに ld へオプションを渡すため
> のオプションです。直接 ld に渡してもエラーになってし
> まいます。

ということはLDFLAGSが今までは渡されてなかったってことですね。
lib/mkmf.rbをちょっと見直す必要がありそうです。

> configure 時に次のエラーがでています。
> 
> ------------------------------
> checking whether the linker is GNU ld... cc: warning 422: Unknown option "-" ignored.
> cc: warning 422: Unknown option "i" ignored.
> cc: warning 422: Unknown option "-nt-prog-name=ld" ignored.
> no
> ------------------------------

ここはエラーになってもいいんですが、なんか変ですね。
たとえば

% /bin/sh -c 'ls hogehoge 2>&1 | grep hogehoge > /dev/null'

と実行しても

ls: hogehoge: No such file or directory

のようなメッセージが出ますか?
#出るなら別な方法を考えないと。

-- 
わたなべひろふみ