[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00168] FDClone の HP-UX 対応について
- Subject: [FDclone-users:00168] FDClone の HP-UX 対応について
- From: SHIOTA Shoichi <Shoichi.Shiota@lightwell.co.jp>
- Date: Fri, 09 May 2003 17:01:26 +0900
潮田です。
たびたびですいません。
Tru64 対応ありがとうございました。
AIX 対応ありがとうございました。
で、と言うわけではありませんが HP-UX での報告です。
# さきに言い訳。
# 別に問題を一つ一つ小出しにしているわけではありません。
# HP-UX や solaris は自由に触れる環境にあっても
# まったく触っていない(ソフトも入れない)のです。
# 仕事の main が AIX なので。
HP-UX を知っている方、バトンタッチをお願いします。
しらいさんに、[FDclone-users:00164] にて
> いえ、AIX でなく HP-UX で試してみることを提案してみたんで
>す。SA_RESETHAND だけが原因だとしたら、signal() を使った時に
>SIGCHLD が無限発呼されるのは HP-UX でも同じことだと思うんで
>す。
と指摘されました。
[FDclone-users:00150] に乗せましたサンプルは、あのメールで
書きました環境でしかテストしていません。
手元でコンパイラーが入っている環境では、solaris と HP-UX が
抜けています。
また、 [FDclone-users:00155] で HP-UX を使用していますが、
メールの通り、signal(SIGCHLD, sig) がセットする sa_flags の
値の取得と sa_flags = SA_RESETHAND にした時の結果しか見て
いませんでした。
$ uname -s -r
HP-UX B.11.00
な環境で、
sa_flags = 0;
sa_flags = SA_RESETHAND;
sa_flags = SA_RESETHAND | SA_NOCLDSTOP;
sa_flags = SA_RESETHAND | SA_NOCLDSTOP | SA_NODEFER;
の4通りを試しましたが、なんのことはない。
すべて暴走でした。チャンチャン。
(signal() でも試しましたが、当然暴走です)
たしか google でひっかかる ruby な方も HP-UX でしたね。
sa_flags = 0 では動く、 AIX よりむごい。
wait() の位置を、ハンドラーの頭に移動させると
上の4(5)通りのどれでも期待通りの動作でした。
$ uname -s -r
SunOS 5.7
な環境では、main() に wait() がある状態で、
どれも期待どおりでした。
> でも実際には、FDclone の子 process 生成で SIGSEGV で死んで
> しまうのは AIX だけでしたよね。HP-UX の場合何が違うのかを考
HP-UX に初めて FD を入れてみました。
AIX とは違い SIGSEGV にはなりませんでしたが、ある意味もっと
すごいです。
Enter や e や x が使用できません。
FDclone のコンパイル終了後、そのディレクトリで
./fd
README にカーソルをもっていって Enter
[1]+ 6511 Stopped on terminal output more ./README
何かキーを押して下さい.
が最下行に表示され、再度 Enter を押すと FD へ戻ります。
同様にe を押すと、何かを描画したあと FD へもどってきます。
画面がちらつくので、何かを書いているようですが動体視力が
圧倒的に不足していて見えません。
e でだめならと x で vi README を実行すると
$ vi README
[42]+ 6816 Stopped on terminal output vi README
何かキーを押して下さい.
と表示され Enter と同様になります。
この動作は、素の 2.03a でも、 [FDclone-users:00154] の patch
適用後でも同じです。
patch 適用後の fdsh で試しましたが
sleep や /bin/echo などは正常に動きますが、
$ vi README
[1]+ 8604 Stopped on terminal output vi README
となりますし、
cat README では
(中身は普通に表示)
fdsh: No child processes
$
で終わります。
Install に載っているのは 10.01 までですので
$ uname -s -r
HP-UX B.10.01
な別の WS で試そうとしたのですが、ファイルが足りないのか
コンパイルも終了できませんでした。
(まったく管理されていない WS でして、 OS 付属物が無い可能性も
あります。)
--- ここから ---
$ make
make -f Makefile.tmp
cc -DFD=2 -DHPUX=1 -c -o term.o term.c
cpp: "termio.h", line 250: warning 2001: Redefinition of macro CR0.
cc: "term.c", line 2141: error 1588: "key_enter" undefined.
cc: "term.c", line 2142: error 1588: "key_beg" undefined.
cc: "term.c", line 2143: error 1588: "key_end" undefined.
*** Error exit code 1
Stop.
*** Error exit code 1
Stop.
--- ここまで ---
/usr/include/term.h ではなく
/usr/include/curses_colr/term.h には上の key_* がいるようです。
# 来週からは間隔が空くと思います。
# HP-UX をご使用の方、交代をお願いします。
# (環境の問題で、他の HP-UX 環境で問題ないようでしたすいません)