アフィリエイト広告を利用しています

2022年09月15日

Emacs: Gcc Emacs のコンパイル・インストール

Gcc Emacs では Emacs Lisp ファイルをネイティブコンパイルするために libgccjit を用いる.

[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 というディレクトリー以下に保存していく.

まだパフォーマンスの改善は実感できていないが, 使っていくことにする.
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

この記事へのトラックバックURL
https://fanblogs.jp/tb/11590467

この記事へのトラックバック
ファン
検索
<< 2024年10月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
最新記事
最新コメント
眼科の定期検査 〜 散歩 by コトタマ (02/15)
眼科の定期検査 by 三文字寄れば文殊のヒフミヨ (09/21)
本を読んで過ごす by 底彦 (12/13)
本を読んで過ごす by ねこ (12/12)
数学の計算をする by 底彦 (12/04)
タグクラウド
カテゴリアーカイブ
仕事(59)
社会復帰(22)
(43)
コンピューター(211)
(1417)
借金(8)
勉強(13)
(12)
数学(97)
運動(8)
日常生活(1386)
(203)
健康(36)
読書(20)
プロフィール

ブログランキング・にほんブログ村へ
にほんブログ村
にほんブログ村 メンタルヘルスブログ うつ病(鬱病)へ
にほんブログ村
にほんブログ村 科学ブログ 数学へ
にほんブログ村
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村