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

前回見つからなかったファイルは4つありました。

grep: config.h: そのようなファイルやディレクトリはありません
grep: tm_p.h: そのようなファイルやディレクトリはありません
grep: insn-config.h: そのようなファイルやディレクトリはありません
grep: insn-attr.h: そのようなファイルやディレクトリはありません

上の階層まで戻って検索してみます。

takk@deb9:~/gcc/gcc-6-6.3.0$ find -name config.h
takk@deb9:~/gcc/gcc-6-6.3.0$

ありませんでした。となると、ビルド時に生成されるファイルでしょうか。
configure内にconfig.hのキーワードがあるかgrepしてみます。

takk@deb9:~/gcc/gcc-6-6.3.0$ grep -r config.h --include=configure* | wc -l
509
takk@deb9:~/gcc/gcc-6-6.3.0$

見つかりました。しかも、検索結果の中には、こんなコメントも。

gcc-6.3.0/libgomp/configure:    #    /* config.h.  Generated by config.status.  */

やはり生成されるファイルのようです。
では、configureを動かして見つからなかったファイルが生成されるか確認します。

takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$ ./configure
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... gawk
checking for libatomic support... yes
checking for libcilkrts support... yes
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libvtv support... yes
checking for libmpx support... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.  Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
http://gcc.gnu.org/install/prerequisites.html for additional info.  If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files.  They may be located in separate packages.
takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$

エラーが出て停止しました。

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

ん~。見知らぬツールです。
apt-cacheで関連してそうなパッケージを探します。

takk@deb9:~/gcc/gcc-6-6.3.0/gcc-6.3.0$ apt-cache search GMP
~他省略~
libgivaro-dev - arithmetic and algebraic computations - development files
libgivaro-doc - Documentation for Givaro
libgivaro9 - arithmetic and algebraic computations
libgmp-dev - Multiprecision arithmetic library developers tools
libgmp10-doc - Multiprecision arithmetic library example code
libgmp3-dev - Multiprecision arithmetic library developers tools
~他省略~

見慣れない単語が。
辞書を見るとmultiprecisionとは、多倍長整数のことみたいです。

つづく

Leave a Reply

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

CAPTCHA