変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

gcc

[gcc]10.2.0のビルド

ビルドすると容量がかなり大きいので rootではなく、
管理者のアカウントを使う。
sudoも入っていないのでインストし、管理者をsudoグループに加入。

$ su root -
# apt-get install sudo
# usermod -G sudo ${development-user}
# exit

まずは、開発用の必須パッケージをインスト。

$ sudo apt-get install build-essential
$ sudo apt-get install libssl-dev

gccのソースをダウンロードして解凍する。


$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz
$ tar xzf gcc-10.2.0.tar.gz
$ cd gcc-10.2.0

gccのビルドに必要なパッケージ類をインスト。

$ ./contrib/download_prerequisites

2020-07-25 01:37:12 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] -> "./gmp-6.1.0.tar.bz2" [1]
2020-07-25 01:37:14 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284/1279284] -> "./mpfr-3.1.4.tar.bz2" [1]
2020-07-25 01:37:15 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] -> "./mpc-1.0.3.tar.gz" [1]
2020-07-25 01:37:17 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] -> "./isl-0.18.tar.bz2" [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.

makefileの設定。

$ mkdir build
$ cd build/
$ ../configure --enable-languages=c,c++ --prefix=/usr/local/gcc-10.2.0 --disable-bootstrap

それではビルド!

$ date; make; date
Sat Jul 25 12:21:24 JST 2020

※再ログイン後に反映されるので。ビルドの間に管理者やsudoのPATHの設定を変えておく。

$ vi ~/.bash_profile
export PATH=/usr/local/gcc-10.2.0/bin:$PATH
$ su -
# ls /etc/sudoers
-r--r----- 1 root root 669 Feb  2 08:23 /etc/sudoers
# chmod +w /etc/sudoers
# sudo vi /etc/ld.so.conf.d/arm-gcc-10.2.0.conf
Defaults        secure_path="/usr/local/gcc-10.2.0/bin:/usr...
# chmod -w /etc/sudoers
# gcc-10.2.0 configuration
/usr/local/gcc-10.2.0/lib
# exit

gccのビルドが無事終わったら、共有ライブラリィの設定を更新。

Sat Jul 25 15:11:22 JST 2020
$ date; sudo make install; date
Sat Jul 25 15:24:17 JST 2020
・・・
Sat Jul 25 15:25:40 JST 2020
$ sudo ldconfig
/sbin/ldconfig.real: /usr/local/gcc-10.2.0/lib/libstdc++.so.6.0.28-gdb.py is not an ELF file - it has the wrong magic bytes at the start.

/sbin/ldconfig.real: /usr/lib/libreadycloud.so.1 is not a symbolic link

おや?共有ライブラリィの設定がうまくいかない!!!

いや

# sudo gcc --version
gcc (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gccはちゃんと動いてるから いいか?




top