Ошибка компиляции компилятора GCC - PullRequest
4 голосов
/ 28 декабря 2011

Я знаю, компилировать компилятор - это ирония. Но мне нужна конкретная версия этого компилятора, а репозитории CentOS 5.x имеют не самые последние версии GCC.

Мне нужна версия 4.3.2, но у меня есть только 4.1.1.

Я следовал этому руководству для установки gcc http://www.mjmwired.net/resources/mjm-fedora-gcc.html и использовал следующие параметры при конфигурировании (до компиляции):

/ root / gcc / gcc-4.3.6 / configure --prefix = / opt / gcc43 --program-суффикс = 43 --enable-languages ​​= c, c ++ --enable-shared --enable-threads = posix --disable-проверять --with-system-zlib --enable -__ cxa_atexit --disable-libunwind-исключения --disable-multilib

Последний вариант --disable-multilib сохранить меня для другой ошибки, которую я получил в предыдущих попытках компиляции (после долгого времени компиляции ...)

Также я установил переменную окружения, потому что в предыдущих попытках я получал ошибки, поэтому я установил следующее:

export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib:$LD_LIBRARY_PATH

Это обеспечивает компилятору поиск в библиотеках mpfr и gmp (которые необходимы) в этом каталоге

Итак, я выполняю команду make.

Я думал, что все было в порядке, потому что это время заняло больше времени (в моей последней попытке перед установкой этой переменной у меня ушло около 2 часов компиляции)

Я использовал экземпляр Micro в Amazon Web Services, этот экземпляр имеет только 1 одноядерный процессор x86_64 и 613 МБ ОЗУ, , поэтому для компиляции потребовалось около 9 ЧАСОВ.

К сожалению, я снова получил ошибки !!, теперь я получил это:

make[2]: Entering directory `/root/gcc/build'
make[3]: Entering directory `/root/gcc/build'
rm -f stage_current
make[3]: Leaving directory `/root/gcc/build'
Comparing stages 2 and 3
warning: ./cc1-checksum.o differs
warning: ./cc1plus-checksum.o differs
Bootstrap comparison failure!
./gcc.o differs
./varasm.o differs
./except.o differs
./i386.o differs
make[2]: *** [compare] Error 1
make[2]: Leaving directory `/root/gcc/build'
make[1]: *** [stage3-bubble] Error 2
make[1]: Leaving directory `/root/gcc/build'
make: *** [all] Error 2

Есть предложения?

Ответы [ 2 ]

7 голосов
/ 28 декабря 2011

Вы, вероятно, не убрали должным образом между попытками. Сделайте make distclean и попробуйте снова. К сожалению.

0 голосов
/ 28 декабря 2011

Вы, вероятно, можете получить .src.rpm, например, для Fedora 16, и выполнить команду rpmbuild --- пересобрать его.Если есть какие-то причудливые флаги Red Hat / CentOS / Fedora, о которых стоит беспокоиться, это должно с этим справиться.(Я предполагаю, что RPM-версия EPEL уже не подходит для нужной версии?)

...