В начало → Руководство Gentoo Linux по обновлению GCC → Обычные грабли |
Важно на время обновления отключить distcc. Смешение версий компилятора на разных узлах вызовет проблемы при сборке. Это не относится к ccache, так как объекты кэша будут в любом случае сделаны недействительными.
Всегда используйте одну и ту же версию GCC для своего ядра и дополнительных модулей ядра. Как только вы пересоберете world с новым GCC, внешние модули (например, app-emulation/qemu-softmmu) не смогут загрузиться. Пожалуйста, чтобы это исправить, пересоберите свое ядро новой версией GCC.
Если вы обновляете GCC на машине SPARC, обязательно еще раз запустите silo -f после пересборки world, чтобы избежать возможных проблем.
Если ваша система жалуется на что-то вроде libtool: link: `/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/libstdc++.la' is not a valid libtool archive
, запустите /sbin/fix_libtool_files.sh 3.3.6 (замените «3.3.6» на номер версии из сообщения об ошибке).
Если вы увидели error: /usr/bin/gcc-config: line 632: /etc/env.d/gcc/i686-pc-linux-gnu-3.3.5: No such file or directory
, тогда попробуйте удалить /etc/env.d/gcc/config-i686-pc-linux-gnu
и снова запустить gcc-config, следом указав source /etc/profile. Делайте это только тогда, когда у вас не настроены никакие кросс-компиляторы.
Если при emerge -e system или emerge -e world не собирается пакет, выполнение можно продолжить командой emerge --resume. Если ошибка появляется снова и снова, пропустите пакет, указав emerge --resume --skipfirst. Не запускайте параллельно другие экземпляры emerge, чтобы не потерять информацию, нужную для возобновления.
Если во время обновления компиляторв встретится ошибка spec failure: unrecognized spec option
, попробуйте откатиться на свой компилятор по умолчанию, убрать переменную GCC_SPECS
и снова обновить компилятор:
Листинг 16. Восстановление первичной настройки компилятора
#
gcc-config 1
#
source /etc/profile
#
unset GCC_SPECS
#
emerge -uav gcc
В начало → Руководство Gentoo Linux по обновлению GCC → Обычные грабли |