gcc 4.7 на Fedora 23 с gcc 5.3.1

Мне нужно установить gcc 4.7.x на Fedora 23, чтобы Matlab скомпилировал код. Я также столкнулся с ошибкой, когда пытался использовать Cuda, для которой требовался gcc 4.9.x или ниже.

Я пытался скомпилировать gcc-4.7.4 с нуля, но я получаю следующие ошибки:

Makefile:4107: recipe for target 'all-stage1-gcc' failed
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory '/home/x/src/objdir'
Makefile:19334: recipe for target 'stage1-bubble' failed
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory '/home/x/src/objdir'
Makefile:903: recipe for target 'all' failed
make: *** [all] Error 2

Я сделал отдельный каталог для конфигурации и сборки, и я запустил конфигурацию как:

../gcc-4.7.4/configure --enable-languages=c,c++ --disable-multilib --prefix=$HOME/gcc-4.7.4

Однако я думаю, что проблема возникает из-за того, что я использую gcc-5.3.1 для компиляции gcc-4.7.4, но я не знаю, как это исправить.

Я заметил, что в dnf нет пакетов для установки gcc-4.7.x.

2 ответа

Похоже, вы поместили свой каталог сборки в исходное дерево. Не делай этого. Следуйте инструкциям вики.

не беги ./configure из исходного каталога это не поддерживается. Вам нужно запустить configure из вне исходного каталога, в отдельном каталоге, созданном для сборки.

Это будет выглядеть примерно так:

tar xzf gcc-4.7.4.tar.gz
cd gcc-4.7.4
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.7.4/configure --no-multilib --prefix=$HOME/gcc-4.7.4 --enable-languages=c,c++
make
make install

Этот вопрос немного устарел, но исправление gcc/cp/cfns.gperf помогло мне. Смотрите здесь: https://gist.github.com/joka90/bb8ef36aa755994d3b3d/. Построен с использованием gcc 5.3.1 под Fedora 23.

#Download and apply fix to be able to build gcc 4.7 with gcc 5.1
cd /path/to/build/gcc/source
wget https://patchwork.ozlabs.org/patch/504982/raw/ -O cfns-fix-mismatch-in-gnu_inline-attributes.patch
patch -p1 -i cfns-fix-mismatch-in-gnu_inline-attributes.patch 
Другие вопросы по тегам