avoid core dump when building emacs 22 on cygwin

一度成功地在cygwin上编译了emacs的cvs版,可是后来出了问题,症状有两个:

  1. make bootstrap时编译byte-opt.el出现core dump;
  2. 在使用一段时间后emacs无法响应,而CPU利用率达到100%;在终端里使用emacs则没有这个问题。

不久前cvs上的emacs版本从22.0.50升级到22.0.90,似乎离Emacs 22正式发布的日子不远了,所以在所有需要使用emacs的机器上都编译了一个最新版的,在Linux上,第一次尝试了–with-gtk这个configure的选项,发现启动时流畅很多,也快了些。而在cygwin上这样编译出的emacs根本不能用(居然还可以完全通过编译?),所以仍然使用了缺省的configure选项。

避免编译byte-opt.el出现core dump的方法是把LANG环境变量设置为en_US,在我的机器上缺省为zh_CN。建议把LANG的缺省值直接设置为en_US,这样在使用一些对中文支持不太好的程序时不会出现乱码。

问题1就这样解决了,不知道是不是误打误撞,以前在使用IPC::Run的时候也遇到过LANG环境变量导致失败的情况。这次虽然用同样的方式解决了问题,但仍然不知其所以然。

问题2到目前为止还没有再次出现过,难怪有些人在论坛里提问却总是得不到解决——不能重现的问题没人能够解决,除了倒霉者自己。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据