[Bug jit/103016] libgccjit on OpenBSD-7.0 fails with bootstrap-emacs:/usr/local/lib/libgccjit.so.0.0.1: undefined symbol '_Z15fname_as_stringi' を参考にして, GCC 11.2.0 (OpenBSD にインストールされているものと同じバージョン) にパッチを当ててコンパイルしたところ, libgccjit が作成できた.
$HOME/opt 以下に libgccjit のライブラリファイル libgccjit.so*, インクルードファイル libgccjit.h をインストールする.
この作業は試行錯誤しながら行ったため, 全体が自分でも把握できていない.
明日にでも整理する.
以上の準備の元で, Emacs をコンパイル・インストールする.
configure スクリプトの実行の際に, Emacs Lisp ファイルのネイティブコンパイルをサポートするために --with-native-compilation オプションを指定する.
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/opt/lib
$ cd ~/src/emacs.HEAD/emacs
$ export AUTOCONF_VERSION="2.71"
$ export AUTOMAKE_VERSION="1.16"
$ ./autogen.sh
$ ./configure \
'CC=egcc' \
'CFLAGS=-I/usr/include -I/usr/X11R6/include -I/usr/local/include -I/home/sokohiko/opt/include' \
'LDFLAGS=-L/usr/lib -L/usr/X11R6/lib -L/usr/local/lib -L/home/sokohiko/opt/lib -lgccjit' \
--prefix=/usr/local \
--mandir=/usr/local/share/man \
--infodir=/usr/local/info \
--with-x-toolkit=athena \
--with-imagemagick \
--with-xaw3d \
--with-x \
--without-xim \
--with-native-compilation
$ gmake bootstrap
$ gmake check
# gmake install
libgccjit.so は直接 /usr/local/lib にインストールしてもいいのかも知れないが, とりあえず \$HOME/opt 以下に置くことにする.
上の手順で Emacs をコンパイルすると, native-lisp というディレクトリーができて, その下に .eln という識別子を持つ各 Emacs Lisp ファイルのネイティブコンパイルされたイメージが作成される.
また, 作成された Gcc Emacs は, 使用中にロードされた Emacs Lisp ファイルを逐次ネイティブコンパイルして \$HOME/.emacs.d/eln-cache というディレクトリー以下に保存していく.
まだパフォーマンスの改善は実感できていないが, 使っていくことにする.
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image