Emacs24 build on Debian(wheezy)

ハマったけど、意外に日本語のあんちょこが無かったのでメモ。

まず、依存関係の解決は

# apt-get build-dep emacs23

で、全部解決してくれる。

その後、GNUのルーチンというか色々なところの紹介通りに”./configure && make”をやると

$ ./configure
$ make
(中略)
In toplevel form:
quail/CCDOSPY.el:118:1:Error: Memory exhausted--use C-x s then exit and restart Emacs

とコンパイルエラーが起こります。ちなみに、”make bootstrap”だとthai-word.elで同じエラーで止まります。
エラーそのままに受け取ると、メモリー不足、emacsが異常メモリーを食いつぶしたよと言うように受け取れるんですが、インストールのためのelispのバイトコンパイルごときでそんな物が出るようじゃ困るわけで…。しかも、そんなに困ってる人が居ない雰囲気。

何が起きてる物かと思ったら、どうやらmalloc()-free()関連のセキュリティチェックに引っかかってるとのこと。
環境変数 MALLOC_CHECK_ が設定されている影響が出ているとのことなので、

$ MALLOC_CHECK_=0 make

とするとエラーが出ずにコンパイルに成功します。どうやら、MALLOC_CHECK_自体が設定されていないとMALLOC_CHECK_=3がデフォルト値となるようです…

参考リンク
PA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #4 あふれを検出するデバッグ:

コメント