2006.07.30 WINE on FreeBSD の怪 この頃流行りの♪ WINE だけれども, ある種の罠が潜んでいたのでメモ っておく。 $ wine ELF interpreter /libexec/ld-elf.so.1 not found Abort trap $ $ notepad ELF interpreter /libexec/ld-elf.so.1 not found Abort trap $ ※5.x でも起こるので下記のような表示かもしれない ELF interpreter /usr/libexec/ld-elf.so.1 not found 原因は kern.maxdsiz (/boot/loader.conf) というか, MAXDSIZ (kernel configuration)というか, これが大きすぎるとダメとのことで, WINE のせいではないのですが, WINE が引金で問題が発生するそうです。 本質的には ELF loader の問題らしく, 今のところ kern.maxdsiz の値を 小さく設定するというワークアラウンドしかありません。 設定値としては 1GB 以下に設定すること。 とありますが, 簡単に調べた 限りは 何か+何か ≧ 1GB だと問題が発生する, というメカニズムのよ うで, 1GB 境界という単純な問題ではなさそうです。 とりあえず私は 896MB あたりで制限して使っています。 大きくメモリを 使用したい用途(行列計算とか)と WINE は共存できないってことで。 似たような設定(?)で kern.dfldsiz がありますが, この設定には依存し ないようです。 ちなみに kern.maxdsiz は datasize (プロセスのデータ 使用量)のハードリミットの上限となります。 行列計算ででかいメモリを 確保する時は malloc(3)/calloc(3) あたりを使うと思うので, 問題無い と思いますが, 安直に auto 変数使ってる場合は kern.maxssiz の値を大 きく設定する必要があります(malloc して使おうね)。 /boot/loader.conf | kernel configuration | default | 備考 ------------------+----------------------+---------+------------- kern.maxdsiz | MAXDSIZ | 128MB | データ上限 kern.maxssiz | MAXSSIZ | 64MB | スタック上限 願わくば, 「FreeBSDで使えるメモリが少ねー」という叫び声が上がらな いことを祈ります。 今となっては…な数字だけど, 制限されているのに は意味があるのです:-)。 Written by 重村法克