最終更新日: 2016-06-26 日 01:23
ホーム | 文書トップ | 目次

NTEmacs ビルドオプション検討

Table of Contents

24.4以降のビルド

事例

configureの結果

Does Emacs use -lrsvg-2?                                no
Does Emacs use -ldbus?                                  no
Does Emacs use -lgnutls?                                no
Does Emacs use -lrsvg-2?                                yes
Does Emacs use -ldbus?                                  yes
Does Emacs use -lgnutls?                                yes

svgの表示

svgファイルを開こうとすると、下記のメッセージが表示される。

Invalid image type `svg'

eww

eww で https://github.com/ を開こうとすると、

Contacting host: github.com:443
Opening TLS connection to `github.com'...
Opening TLS connection with `gnutls-cli --insecure -p 443 github.com'...done

先に進めない。gnutlsが正しく動作していないものと思われる。

configure オプション検討

環境変数 MSYSTEM=MINGW32

configure は MSYSTEMの値を参照しており、 MSYS2のシェルのデフォルト MSYSTEM=MSYS ではconfigureが通らないので、 MSYSTEM=MINGW32 を指定する。

環境変数 PKG_CONFIG_PATH

MSYS2のシェルのデフォルトでは、PKG_CONFIG_PATH は下記のようになっている。

PKG_CONFIG_PATH=/usr/lib/pkgconfig:/lib/pkgconfig

rsvg-2,gnutls等で

PKG_CONFIG_PATH=/mingw32/lib/pkgconfig

引数 -shared-libgcc

/etc/PROBLEMS に、Emacs終了時にクラッシュする不具合についての記載がある。

#+BEGIN_EXAMPLE

Emacs crashes when exiting the Emacs session

This was reported to happen when some optional DLLs, such as those used for displaying images or the GnuTLS library or zlib compression library, which are loaded on-demand, have a runtime dependency on the libgcc DLL, libgcc_s_dw2-1.dll. The reason seems to be a bug in libgcc which rears its ugly head whenever the libgcc DLL is loaded after Emacs has started.

One solution for this problem is to find an alternative build of the same optional library that does not depend on the libgcc DLL.

Another possibility is to rebuild Emacs with the -shared-libgcc switch, which will force Emacs to load libgcc_s_dw2-1.dll on startup, ahead of any optional DLLs loaded on-demand later in the session. #+END_EXAMPLE

これを回避する為、-shared-libgcc を指定する。

デバッグ情報

引数無しで configure を実行した時の Makefile では CFLAGS は下記のようになる。

CFLAGS=-g3 -O2 -gdwarf-2

-g3 -gdwarf-2 はデバッグ情報の出力指定であり、デフォルトがデバッグ情報有りというのも不思議(emacsならでは?)だが、通常は不要なので指定無しでよい。

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)