2

Я получаю ошибки начальной загрузки при попытке установить GCC и могу использовать некоторую помощь. Я пытаюсь скомпилировать GCC в своем домашнем каталоге в общей системе (кластер). Кластер имеет GCC 4.4.3, который я использую для начальной загрузки компиляции. Я написал этот небольшой скрипт, чтобы показать, что я делаю, и помочь в отладке:

# 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» с ошибкой: «Ошибка сравнения Bootstrap!"Я загрузил последние несколько страниц вывода в виде error.txt, а также config.log со стадии настройки. Я пробовал:

  1. работает make distclean из objdir и повторно запускает конфигурацию и make.
  2. удаление -j 16 из make .
  3. используя абсолютный путь при вызове configure.
  4. использование сценария contrib/download_prerequisites для загрузки mpfr-2.4.2, gmp-4.3.2 и mpc-0.8.1 вместо более новых версий, указанных выше.
  5. установка переменной среды PWDCMD для команды pwd с поддержкой автомонтера (pawd).
  6. начальная загрузка с другой версией GCC (3.4.6).
  7. начальная загрузка с ICC 12.0.0 через export CC=icc и export CXX=icpc .

Я также попытался опубликовать этот вопрос в списке рассылки gcc; вот где я получил предложение (2) выше.

Есть идеи, почему эта сборка не работает?

3 ответа3

1

Вы также можете попробовать make bootstrap или make bootstrap4 вместо непосредственно make install , чтобы увидеть, имеет ли это какое-то значение.

0

Сборщик Чака Норриса, отвечающий за сборку системы GCC 4.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 я mv 'd пререквизитов источники вместо ln -s ИНГ их, я не уточнил , 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .