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

前回GMPを、apt-get installできなかったので、GMP(GNU MP)のソースを入手して、インストールすることにします。
まずは、公式サイト。https://gmplib.org/

takk@deb9:~/gcc$ wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz

実行すると、ダウンロードされます。

--2018-11-18 21:18:45--  https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz
gmplib.org (gmplib.org) をDNSに問いあわせています... 130.242.124.102
gmplib.org (gmplib.org)|130.242.124.102|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1939430 (1.8M) [application/octet-stream]
`gmp-6.1.2.tar.lz' に保存中

gmp-6.1.2.tar.lz    100%[===================>]   1.85M  93.0KB/s    in 23s

2018-11-18 21:19:09 (83.8 KB/s) - `gmp-6.1.2.tar.lz' へ保存完了 [1939430/1939430]
takk@deb9:~/gcc$

lz形式のファイル、初めて使うかも。(日常的に使ってないので、使ったことあるかも忘れました)
いきなりコマンドが分かりません。man lzipします。

takk@deb9:~/gcc$ man lzip
lzip というマニュアルはありません
takk@deb9:~/gcc$

入ってませんでした。apt-getします。

takk@deb9:~/gcc$ sudo apt-get install lzip
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  lzip
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 109 個。
77.3 kB のアーカイブを取得する必要があります。
この操作後に追加で 162 kB のディスク容量が消費されます。
取得:1 http://ftp.jp.debian.org/debian stretch/main amd64 lzip amd64 1.18-5 [77.3 kB]
77.3 kB を 0秒 で取得しました (599 kB/s)
以前に未選択のパッケージ lzip を選択しています。
(データベースを読み込んでいます ... 現在 180100 個のファイルとディレクトリがインストールされています。)
.../archives/lzip_1.18-5_amd64.deb を展開する準備をしています ...
lzip (1.18-5) を展開しています...
install-info (6.3.0.dfsg.1-1+b2) のトリガを処理しています ...
lzip (1.18-5) を設定しています ...
man-db (2.7.6.1-2) のトリガを処理しています ...
takk@deb9:~/gcc$

そしてman lzip。

LZIP(1)                          User Commands                         LZIP(1)

NAME
       lzip - reduces the size of files

SYNOPSIS
       lzip [options] [files]

DESCRIPTION
       Lzip - LZMA lossless data compressor.

OPTIONS
       -h, --help
              display this help and exit

       -V, --version
              output version information and exit

       -a, --trailing-error
              exit with error status if trailing data

       -b, --member-size=<bytes>
              set member size limit in bytes

       -c, --stdout
              write to standard output, keep input files

       -d, --decompress
              decompress

       -f, --force
              overwrite existing output files
~省略~

-dオプションを使えば良いようです。

takk@deb9:~/gcc$ ls
gcc-6-6.3.0                    gcc-6_6.3.0-18+deb9u1.dsc  gmp-6.1.2.tar.lz
gcc-6_6.3.0-18+deb9u1.diff.gz  gcc-6_6.3.0.orig.tar.gz
takk@deb9:~/gcc$ lzip -d gmp-6.1.2.tar.lz
takk@deb9:~/gcc$ ls
gcc-6-6.3.0                    gcc-6_6.3.0-18+deb9u1.dsc  gmp-6.1.2.tar
gcc-6_6.3.0-18+deb9u1.diff.gz  gcc-6_6.3.0.orig.tar.gz
takk@deb9:~/gcc$

tar.lzがtarに置き換わってしまいました。まあいいか。
tarファイルを展開します。

takk@deb9:~/gcc$ tar xf gmp-6.1.2.tar
takk@deb9:~/gcc$ ls
gcc-6-6.3.0                    gcc-6_6.3.0-18+deb9u1.dsc  gmp-6.1.2
gcc-6_6.3.0-18+deb9u1.diff.gz  gcc-6_6.3.0.orig.tar.gz    gmp-6.1.2.tar
takk@deb9:~/gcc$ cd gmp-6.1.2/
takk@deb9:~/gcc/gmp-6.1.2$ ls
AUTHORS           config.guess       gmp-h.in       mpq
COPYING           config.in          gmp-impl.h     mpz
COPYING.LESSERv3  config.sub         gmpxx.h        nextprime.c
COPYINGv2         configfsf.guess    install-sh     primesieve.c
COPYINGv3         configfsf.sub      invalid.c      printf
ChangeLog         configure          longlong.h     rand
INSTALL           configure.ac       ltmain.sh      scanf
INSTALL.autoconf  cxx                memory.c       tal-debug.c
Makefile.am       demos              mini-gmp       tal-notreent.c
Makefile.in       doc                missing        tal-reent.c
NEWS              errno.c            mp_bpl.c       test-driver
README            extract-dbl.c      mp_clz_tab.c   tests
acinclude.m4      gen-bases.c        mp_dv_tab.c    tune
aclocal.m4        gen-fac.c          mp_get_fns.c   version.c
assert.c          gen-fib.c          mp_minv_tab.c  ylwrap
bootstrap.c       gen-jacobitab.c    mp_set_fns.c
compat.c          gen-psqr.c         mpf
compile           gen-trialdivtab.c  mpn
takk@deb9:~/gcc/gmp-6.1.2$

では、configureから進めます。

takk@deb9:~/gcc/gmp-6.1.2$ ./configure

~省略~

config.status: executing libtool commands
configure: summary of build options:

  Version:           GNU MP 6.1.2
  Host type:         sandybridgenoavx-pc-linux-gnu
  ABI:               64
  Install prefix:    /usr/local
  Compiler:          gcc
  Static libraries:  yes
  Shared libraries:  yes

takk@deb9:~/gcc/gmp-6.1.2$

makeして、

takk@deb9:~/gcc/gmp-6.1.2$ make

~省略~

takk@deb9:~/gcc/gmp-6.1.2$ 

続けて、make install。

takk@deb9:~/gcc/gmp-6.1.2$ sudo make install

~省略~

+-------------------------------------------------------------+
| CAUTION:                                                    |
|                                                             |
| If you have not already run "make check", then we strongly  |
| recommend you do so.                                        |
|                                                             |
| GMP has been carefully tested by its authors, but compilers |
| are all too often released with serious bugs.  GMP tends to |
| explore interesting corners in compilers and has hit bugs   |
| on quite a few occasions.                                   |
|                                                             |
+-------------------------------------------------------------+

make[4]: ディレクトリ '/home/takk/gcc/gmp-6.1.2' から出ます
make[3]: ディレクトリ '/home/takk/gcc/gmp-6.1.2' から出ます
make[2]: ディレクトリ '/home/takk/gcc/gmp-6.1.2' から出ます
make[1]: ディレクトリ '/home/takk/gcc/gmp-6.1.2' から出ます
takk@deb9:~/gcc/gmp-6.1.2$

何でしょう。。。make checkを推奨されました。

つづく

Leave a Reply

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

CAPTCHA