Ошибка 1 и 2 при компиляции GCC 4.4.2 на OpenSolaris 2009.06

Моя проблема:

Я пытался скомпилировать, собрать и установить GCC 4.4.2 в своей установке OpenSolaris 2009.06 на моем компьютере VirtualBox 3 i386. Но при запуске make я получаю ту же ошибку:

> checking whether ln -s works... yes
checking for i386-pc-solaris2.11-gcc... /src/gcc-4.4.2/host-i386-pc-solaris2.11/gcc/xgcc -B/src/gcc-4.4.2/host-i386-pc-solaris2.11/gcc/ -B/usr/gnu/i386-pc-solaris2.11/bin/ -B/usr/gnu/i386-pc-solaris2.11/lib/ -isystem /usr/gnu/i386-pc-solaris2.11/include -isystem /usr/gnu/i386-pc-solaris2.11/sys-include
checking for suffix of object files... configure: error: in `/src/gcc-4.4.2/i386-pc-solaris2.11/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `/src/gcc-4.4.2'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/src/gcc-4.4.2'
make: *** [all] Error 2

Попытки решения:

  1. # P4 #
    # P5 #
  2. # P6 #
    # P7 #

Я по-прежнему получаю те же ошибки, несмотря на то, что запущен ./configure с двумя указанными выше решениями

Любая помощь будет оценена по достоинству! Спасибо!


person hpy    schedule 24.10.2009    source источник
comment
В нем говорится, что см. Config.log для более подробной информации - есть ли там что-нибудь полезное?   -  person schnaader    schedule 24.10.2009


Ответы (1)


  • # P1 #
    # P2 # # P3 #
  • # P4 #
    # P5 # # P6 #
  • # P7 #
    # P8 #
  • # P9 #
    # P10 #

Однако у меня есть GCC 4.4.2 на Solaris 10 без проблем (используя GCC 4.4.1 в качестве компилятора начальной загрузки).

person Jonathan Leffler    schedule 24.10.2009
comment
Я попытался выполнить «make bootstrap», но процесс продолжался несколько часов, после чего возникла ошибка «Out of memory» 2. Я попытался перезапустить, выполнив сначала команду make clean && make distclean, и одно из сообщений было «Рекурсивно». переменная `AR_FOR_TARGET 'ссылается на себя ..... [clean-stage3-target-libgcc] Ошибка 2'. Любые идеи? - person hpy; 24.10.2009
comment
Теперь, после выполнения make bootstrap, я получаю другое сообщение об ошибке: проверка работы компилятора C ... configure: error: in _1 _-- host '. См. config.log' for more details. make[2]: *** [configure-stage3-target-libgcc] Error 1 make[2]: Leaving directory / src / gcc-4.4.2 'make [1]: *** [stage3-bubble] Ошибка 2 make [1]: выход из каталога `/src/gcc-4.4.2' make: *** [bootstrap ] Ошибка 2 Кто-нибудь знает, что это значит? Спасибо! - person hpy; 24.10.2009
comment
Что касается времени - это, безусловно, довольно длинный процесс, но если вы запустите с помощью make -j4 (с числом, соответствующим количеству ядер на вашей машине), это, безусловно, займет меньше времени, если вы используете число больше чем один. Также понадобится много места - порядка 2-4 ГБ. Обычно это не проблема в современных системах, но имейте в виду (мне нужно освободить место на моем старинном SPARC). «Рекурсивная переменная» вызывает недоумение. - person Jonathan Leffler; 24.10.2009
comment
Что касается вашей новой ошибки, это странно. Это компиляция этапа 3 - необычное место для получения такого рода ошибок. На этапе 1 используется существующий компилятор для компиляции нового GCC; на этапе 2 для компиляции используется новый GCC; этап 3 использует перестроенный компилятор этапа 2 для восстановления самого себя и проверяет, получает ли он тот же ответ. На заключительном этапе создаются библиотеки поддержки и другие вещи, которые ранее не создавались. [...продолжение следует...] - person Jonathan Leffler; 24.10.2009
comment
[... продолжение ...] Я забываю, является ли финальная стадия сборки формально стадией 3 или отдельной стадией. Итак, на этапе 3 очистки и настройки должен использоваться новый GCC для восстановления самого себя, но это необычно, чтобы вызывать проблемы. Я не уверен, что может пойти не так. Я полагаю, вы используете чип AMD64? А вы кросс-компиляцию не делаете? - person Jonathan Leffler; 24.10.2009
comment
На самом деле мой чип - Intel Core 2 Duo 2,0 ГГц, и я не занимаюсь кросс-компиляцией. Также я просто попробовал то же самое (чтобы убедиться) и получил ту же ошибку. - person hpy; 24.10.2009
comment
Кстати, я тоже пробовал это сделать: ./configure --prefix = / usr / gnu --program-suffix = -4.4.2 --enable-shared --disable-static --disable-libtool-lock - -target = --enable-objc-gc --enable-concept-tests --disable-libada --enable-libssp --enable-languages ​​= c, c ++, objc, fortran --enable-thread = posix - person hpy; 24.10.2009
comment
--enable-tls = yes --with-system-zlib --without-gnu-ld --with-ld = / usr / ccs / bin / ld --with-gnu-as --with-as = / usr / sfw / bin / gas --with-gmp-include = / usr / gnu / include / --with-gmp-lib = / usr / gnu / lib --with-mpfr-include = / usr / gnu / include / --with-mpfr-lib = / usr / gnu / lib --enable-c99 --enable-nls --enable-wchar_t --enable-libstdcxx-allocator = mt --with-pic - person hpy; 24.10.2009
comment
Я получил этот очень длинный набор параметров, запустив './gcc -v' и посмотрев, как компилируется моя существующая копия gcc. - person hpy; 24.10.2009
comment
Если вы не используете чип AMD64, вам нужно задаться вопросом, почему конфигурация выбирает этот вариант. Полагаю, это зависит от того, достаточно ли Core 2 Duo выглядит как AMD64 - у меня заканчиваются идеи и соответствующий опыт, чтобы помочь. Я достаточно часто компилировал GCC; Ранее на этой неделе я собрал 4.4.2 и удалил версию 4.2.3, чтобы освободить для нее место (у меня все еще установлены 4.4.1, 4.3.3 и 3.4.6). Я собираюсь попробовать кое-что - я дам вам знать, узнаю ли я что-нибудь. - person Jonathan Leffler; 24.10.2009
comment
Не уверен, насколько это важно, но когда я создаю GCC 4.4.2 на MacOS X 10.5.8, он использует x86_64, а не AMD для архитектуры. Выбирая одну библиотеку, это /usr/gcc/v4.4.2/lib/x86_64/libgomp.1.dylib. Думаю, нужно посмотреть, подходит ли выбранная архитектура для вашей платформы. - person Jonathan Leffler; 25.10.2009