gccのソースはどこ(その7)

gccソース続きです。
gccのソースビルドをするため、configureを起動しましたが、gmpがどうのこうとエラーが出まして、gmpライブラリの壁にぶち当たり中です。
前回インストールしたsample codeからサイトへいざなわれたので、確認してみます。
http://gmplib.org/manual/


日本語版もあります。https://na-inet.jp/na/gmp_ja/

英語でも日本語でも、私はたぶん意味が分からないので、目が疲れない英語の方を読むことにします。
と、思いましたが、読み始める前に、ずっと見落としていたバージョンに気づきました。
GNU MP 6.1.2
とタイトルに書いてあります。
あれ。。。gccのconfigureで出てたエラーはこのバージョンでしたっけ。

2個前のブログ記事から抜粋。

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

GMP 4.2+とあります。+とあるので、4.2以上ってことですね。

しかし、前回インストールしたexample codeパッケージは、10とあります。

libgmp10-doc - Multiprecision arithmetic library example code

どいういうことでしょう。apt-cache searchしてみます。

takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$ apt-cache search libgmp
libstrongswan - strongSwan utility and crypto library
libgmp10 - 多倍長精度演算ライブラリ
libgmpada4 - GNU 多倍長精度ライブラリの Ada バインディング: 共有ライブラリ
libgmpxx4ldbl - 多倍長精度演算ライブラリ (C++ バインディング)
libnettle6 - 低レベル暗号化ライブラリ (対称および一方向の暗号)
libgmp-dev - Multiprecision arithmetic library developers tools
libgmp10-doc - Multiprecision arithmetic library example code
libgmp3-dev - Multiprecision arithmetic library developers tools
libcrypt-dh-gmp-perl - Crypt::DH replacement that uses GMP directly
libgmpada6-dev - Ada binding to the GNU MultiPrecision library: development
libgmp-ocaml - OCaml bindings for the GNU multiprecision arithmetic library
libgmp-ocaml-dev - OCaml bindings for the GNU multiprecision arithmetic library
libhogweed4 - low level cryptographic library (public-key cryptos)
takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$

一番大きな数字は、libgmp10ですね。
公式サイトは6.1.2で、aptのパッケージはlibgmp10。どういうことでしょう。
もう、いろいろ面倒なので、インストール。数字がついていないlibgmp-devというパッケージを選んでみます。

takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$ sudo apt-get install libgmp-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libgmpxx4ldbl
提案パッケージ:
  gmp-doc libmpfr-dev
以下のパッケージが新たにインストールされます:
  libgmp-dev libgmpxx4ldbl
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 109 個。
653 kB のアーカイブを取得する必要があります。
この操作後に追加で 1,971 kB のディスク容量が消費されます。
続行しますか? [Y/n]
取得:1 http://ftp.jp.debian.org/debian stretch/main amd64 libgmpxx4ldbl amd64 2:6.1.2+dfsg-1 [22.2 kB]
取得:2 http://ftp.jp.debian.org/debian stretch/main amd64 libgmp-dev amd64 2:6.1.2+dfsg-1 [631 kB]
653 kB を 0秒 で取得しました (1,119 kB/s)
以前に未選択のパッケージ libgmpxx4ldbl:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 180081 個のファイルとディレクトリがインストールされています。)
.../libgmpxx4ldbl_2%3a6.1.2+dfsg-1_amd64.deb を展開する準備をしています ...
libgmpxx4ldbl:amd64 (2:6.1.2+dfsg-1) を展開しています...
以前に未選択のパッケージ libgmp-dev:amd64 を選択しています。
.../libgmp-dev_2%3a6.1.2+dfsg-1_amd64.deb を展開する準備をしています ...
libgmp-dev:amd64 (2:6.1.2+dfsg-1) を展開しています...
libc-bin (2.24-11+deb9u3) のトリガを処理しています ...
libgmpxx4ldbl:amd64 (2:6.1.2+dfsg-1) を設定しています ...
libgmp-dev:amd64 (2:6.1.2+dfsg-1) を設定しています ...
libc-bin (2.24-11+deb9u3) のトリガを処理しています ...
takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$

ちらちら6.1.2というバージョンが見えますので、さきほど見たサイトのバージョンと同じものがインストールされたということでしょう。
ん~、10ってなんだったのでしょうか。

さて、libgmp 6.1.2がインストールされたのでしょうか。

takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$ find /usr/lib -name '*libgmp*'
/usr/lib/x86_64-linux-gnu/libgmpxx.a
/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/libgmp.so
/usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
/usr/lib/x86_64-linux-gnu/libgmpxx.so
/usr/lib/x86_64-linux-gnu/libgmp.so
/usr/lib/x86_64-linux-gnu/libgmpxx.so.4.5.2
/usr/lib/x86_64-linux-gnu/libgmpxx.so.4
/usr/lib/x86_64-linux-gnu/libgmp.a
/usr/lib/x86_64-linux-gnu/libgmp.so.10
takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$

6.1.2ないです。
よくわからんです。
ってことはソースからインストールですね。

つづく

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA