Gauche-dbd-mysql5 のエラー
このつぶやきがちょっと面白そうだったので深追いしてみました。
このせいだったのかな…
$ file /opt/local/lib/gauche/0.8.13/i686-apple-darwin10.0.0/libgauche.dylib /opt/local/lib/gauche/0.8.13/i686-apple-darwin10.0.0/libgauche.dylib: Mach-O dynamically linked shared library i386
そして gauche +universal はビルドエラーっと。時間ないから帰ってきてから再トライする。
$ sudo port install gauche +universal ---> Computing dependencies for gauche ---> Fetching gauche ---> Verifying checksum(s) for gauche ---> Extracting gauche ---> Applying patches to gauche ---> Configuring gauche ---> Building gauche Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gauche/work/Gauche-0.8.13" && /usr/bin/make -j2 all " returned error 2 Command output: vport.c:522: warning: assignment makes pointer from integer without a cast vport.c: In function 'bport_flush': vport.c:541: warning: assignment makes pointer from integer without a cast In file included from ../../src/gauche.h:57, from vport.c:36: ../../src/gauche/float.h:96: error: width of 'mant' exceeds its type vport.c:39:28: error: gauche/uvector.h: No such file or directory vport.c: In function 'bport_fill': vport.c:521: warning: implicit declaration of function 'Scm_MakeU8VectorFromArrayShared' vport.c:522: warning: assignment makes pointer from integer without a cast vport.c: In function 'bport_flush': vport.c:541: warning: assignment makes pointer from integer without a cast lipo: can't figure out the architecture type of: /var/tmp//cctAqdp4.out make[2]: *** [vport.o] Error 1 ../../src/gauche-config --fixup-extension text-gettext make[2]: ../../src/gauche-config: No such file or directory ../../src/gosh -ftest ../../src/gencomp --ext-module text/gettext.scm ./text-gettext-lib.scm make[2]: ../../src/gosh: No such file or directory make[2]: *** [text-gettext_head.c] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [text-gettext-lib.c] Error 1 make[1]: *** [all] Error 2 ../src/gosh -q -I../src -I../lib -lgauche-init ./extract -en -o gauche-refe.texi gauche-ref.texi make[1]: ../src/gosh: No such file or directory ../src/gosh -q -I../src -I../lib -lgauche-init ./extract -jp -o gauche-refj.texi gauche-ref.texi make[1]: ../src/gosh: No such file or directory make[1]: *** [gauche-refe.texi] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [gauche-refj.texi] Error 1 make: *** [all] Error 2 Error: Status 1 encountered during processing.
こういうことらしい。
これ読んで分かった。
問題は次のように整理された。
- macport で gauche をインストールするときに build_arch=i386 を付けている
- gauche-dbd-mysql5 の野良ポートがインストールできてしまう
- gauche の実行バイナリは i386 だから x86_64 のイメージは読めない
ということで、対処するとしたら macport で gauche x86_64 がインストールできるようにするのが一番いいですね。
と思って Portfile 書こうとしてるけど途中。
結局こうなればいいと思うのです。
$ file dbd_mysql.so dbd_mysql.so: Mach-O universal binary with 2 architectures dbd_mysql.so (for architecture x86_64): Mach-O 64-bit bundle x86_64 dbd_mysql.so (for architecture i386): Mach-O bundle i386