From: SAITOU Toshihide <[メールアドレス保護]> Date: Tue, 18 Mar 2008 21:46:27 +0900
:> FreeBSD 6-STABLE から FreeBSD 7.0-RELEASE にソース・アップデー :> トしたら翻訳魂というプログラムが動かなくなったようです. 私も古いプログラム (a.outバイナリでファイルのタイムスタンプは 1997 年…) が FreeBSD 7 では動かなかったのですが解決策はありました。 FreeBSD6→FreeBSD7 ではカーネルコンフィグレーションファイルにおける COMPAT_43 オプションが COMPAT_43 と COMPAT_43TTY に分かれた(?)ようです ね。ソースや議論は追い掛けていないので詳細は事情を知っている方に教えて 頂きたいですが。。 GENERIC カーネルには COMPAT_43TTY しか入っていないので COMPAT_43 機能が 必要な古いバイナリを動かすには COMPAT_43 を追加したカーネルを作らない といけないのでしょう。 # /sys/conf/NOTES options COMPAT_43 options COMPAT_43TTY # /sys/i386/conf/GENERIC options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] FreeBSD6 で動いていて FreeBSD7 で駄目、compat.sigactionで Function not implementedというのは私の場合と同様なので試してみる価値はあるのでは。 :> # /usr/local/honyaku/bin/honyakuserver :> Bad system call: 12 (core dumped) :> :> # truss /usr/local/honyaku/bin/honyakuserver :> socket(PF_INET,SOCK_STREAM,0) = 3 (0x3) :> setsockopt(0x3,0xffff,0x4,0xbfbfed24,0x4,0xbfbfed94) = 0 (0x0) :> bind(3,{ AF_INET 0.0.0.0:2744 },16) = 0 (0x0) :> listen(0x3,0x5,0xbfbfed94,0x1,0xbfbfed8c,0x0) = 0 (0x0) :> compat.sigaction(0x2,0xbfbfdee4,0xbfbfded8,0x0,0x0,0x0) ERR#78 'Function not implemented' :> SIGNAL 12 (SIGSYS) :> :> # ldd /usr/local/honyaku/bin/honyakuserver :> ldd: /usr/local/honyaku/bin/honyakuserver: not a dynamic executable :> :> これには何か対処法はあるでしょうか? :> :> もういっそ逆変換で辞書引き(英和・和英)できる Wnn9 とかだし :> てくれないかなぁ. :> :> 齊藤@湖西市 :> # それから黒箱(ARM, PowerPC)に FreeBSD はインストールできないですかね? こっちは分かりません # ちなみに古いa.outバイナリを動かすには COMPAT_AOUT オプション付の # カーネルを作り、かつ共有ライブラリを使っていたら a.out用の # libc.so.*.* 等をどこかから引っ張り出して /usr/lib/compat/aout/ に置 # いておく…などの作業が必要です。 日野