Vim と Mavericks
Vim がビルドできない!未解決
先日 OS を Mavericks にしたのだけど、Vim のビルドに支障が出るようになってしまった。解決はしなかったけれど、試行錯誤をしたのでメモをまとめておく。
エラーの内容は下記
os_unix.c:834:13: error: conflicting types for 'sigaltstack'
システムの signal.h
とぶつかってるみたい。vim_dev を見てみるとすでに報告がなされていてパッチも出されていた。
自分は vim-jp でミラーされている git リポジトリを使っているのだけど、tag は 61 を打たれていたからビルドは通ると思っていたのだけど、やっぱりダメだった。もう一度見てみると、61 にも問題がありそうな感じ。報告者は一人だけなのでレアなケースなのかも。60 に戻すとビルドが通るので、とりあえずこれでインストールしておく。
Vim はインストールしてしまったので、もうちょっと詳しく調べてみる。61 にして config.log を見てみると ac_cv_header_AvailabilityMacros_h=yes
になっていた。上記の報告者とは状況が違うみたい。
os_unix.c
の 807 行目にある #if defined(HAVE_AVAILABILITYMACROS_H)
をコメントアウトして AvailabilityMacros.h を読み込ませるとコンパイルが通るようになる。
Vim のビルドでは src/auto/config.h を見てるようなのだが、ここの一番下にある HAVE_AVAILABILITYMACROS_H
がコメントアウトされたままで HAVE_AVAILABILITYMACROS_H 1
になっていない。どういうことなんだろう?configure.in
や configure script
を読めってことなのかな?
ちなみに Panther も同じ状況なんだけどビルドは通る。config.h 関係ないじゃん?
config.h
を HAVE_AVAILABILITYMACROS_H 1
にして make
を実行すると 7.4.61 が生成されるので、make install
しておいた。
62 で問題解決した。