it-swarm-ja.com

Bootstrap GCC4.8.0のコンパイル中にエラーが発生しました

GCCをインストールしようとすると、bootstrapエラーが発生し、ヘルプを使用できます。共有システム(クラスター)のホームディレクトリでGCCをコンパイルしようとしています。クラスターにはGCC4.4があります。 .3、これを使用してbootstrapコンパイルします。私が行っていることを示し、デバッグに役立つように、この小さなスクリプトを作成しました。

# Installation parameters
gccver=4.8.0
gmpver=5.1.1
mpcver=1.0.1
mpfrver=3.1.2
prefix=$HOME/local
langs=c,c++

# Download source
wget ftp://gnu.mirror.iWeb.com/gnu/gcc/gcc-${gccver}/gcc-${gccver}.tar.gz
wget ftp://ftp.gnu.org/gnu/gmp/gmp-${gmpver}.tar.bz2
wget ftp://ftp.gnu.org/gnu/mpc/mpc-${mpcver}.tar.gz
wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-${mpfrver}.tar.gz

# Unpack source
tar -xzvf gcc-${gccver}.tar.gz
tar -xjvf gmp-${gmpver}.tar.bz2
tar -xzvf mpc-${mpcver}.tar.gz
tar -xzvf mpfr-${mpfrver}.tar.gz

# Move dependency source directories into gcc source directory
mv gmp-${gmpver} gcc-${gccver}/gmp
mv mpc-${mpcver} gcc-${gccver}/mpc
mv mpfr-${mpfrver} gcc-${gccver}/mpfr

# create a build directory and change to it
mkdir objdir
pushd objdir

# configure, make, check, and install gcc:
../gcc-${gccver}/configure --prefix=${prefix} --enable-languages=${langs}
make -j 16
make install

# return to the original directory
popd

上記は「make」中に「ブートストラップ比較に失敗しました!」というエラーで失敗します。出力の最後の数ページを error.txt としてアップロードし、また config.log としてconfigureステージからアップロードしました。私はもう試した:

  1. objdirからmake distcleanを実行し、configureとmakeを再実行します。
  2. makeから-j 16を削除します。
  3. configureを呼び出すときに絶対パスを使用します。
  4. 上記の新しいバージョンの代わりに、contrib/download_prerequisitesスクリプトを使用してmpfr-2.4.2、gmp-4.3.2、およびmpc-0.8.1をダウンロードします。
  5. pWDCMD環境変数をautomounter対応のpwdコマンド(pawd)に設定します。
  6. 異なるバージョンのGCC(3.4.6)でのブートストラップ。
  7. export CC=iccおよびexport CXX=icpcを介したICC12.0.0でのブートストラップ。

また、この質問をgccメーリングリストに投稿してみました。それが私が上記の提案(2)を受け取った場所です。

このビルドが失敗する理由はありますか?

2

直接make bootstrapの代わりにmake bootstrap4またはmake installを試して、違いが生じるかどうかを確認することもできます。

1
user224341

システムを担当するChuckNorrisビルダーは、次の手順を使用してGCC4.8.0をビルドしました。

module purge
cd /tmp/repoman
tar xzf ~/src/gnu/gcc-4.8.0.tar.gz
cd gcc-4.8.0/
tar xzf ~/src/gnu/mpfr-2.4.2.tar.gz
ln -s mpfr-2.4.2 mpfr
tar xzf ~/src/gnu/gmp-4.3.2.tar.gz
ln -s gmp-4.3.2 gmp
tar xzf ~/src/gnu/mpc-0.8.1.tar.gz
ln -s mpc-0.8.1 mpc
cd ../
mkdir objdir
cd objdir/
../gcc-4.8.0/configure --prefix=/usr/local/gcc-4.8.0 CC=gcc4 CXX=g++4
make && make install

これは私がやっていたことと非常に似ています。違いは、module purgeを実行しなかったこと、前提条件のソースをln -sする代わりにmvしたこと、CC=gcc4 CXX=g++4を指定しなかったことです。そして明らかに私の--prefixは私のホームディレクトリのパスを指していた。これらのどれが違いを生んだのかわかりません。おそらくCC=... CXX=...またはmodule purgeのいずれかです。結果をテストして投稿します。

0

make distclean./configure && makeをもう一度実行してみてください。

ここで同様の問題を参照してください: https://stackoverflow.com/questions/8651547/error-compiling-the-compiler-gcc

0
Nikolai