Компиляция gcc 4.6.2 (невозможно вычислить суффикс объектных файлов)

Проблема при компиляции gcc 4.6.2:

checking for avr-gcc... /data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/xgcc -B/data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/ -B/data/data6/soft/programming/gcc-avr/avr/bin/ -B/data/data6/soft/programming/gcc-avr/avr/lib/ -isystem /data/data6/soft/programming/gcc-avr/avr/include -isystem /data/data6/soft/programming/gcc-avr/avr/sys-include 
checking for suffix of object files... configure: error: in `/data/data6/soft/src_build/gcc-4.6.2/avr/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.

В моем gcc-4.6.2/avr/libgcc/config.log я нашел:

configure:3268: /data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/xgcc -B/data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/ -B/data/data6/soft/programming/gcc-avr/avr/bin/ -B/data/data6/soft/programming/gcc-avr/avr/lib/ -isystem /data/data6/soft/programming/gcc-avr/avr/include -isystem /data/data6/soft/programming/gcc-avr/avr/sys-include -c -g -O2 conftest.c >&5
exec: 89: -o: not found
configure:3272: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h. */
| 
| int
| main ()
| {
| 
| ;
| return 0;
| }
configure:3286: error: in `/data/data6/soft/src_build/gcc-4.6.2/avr/libgcc':
configure:3289: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.

Если эту команду выполнить напрямую (после создания conftest.c), то результат будет таким же.

Что такое exec: 89: -o: not found? Какая программа его написала? Где находится 89 строка?

Такие решения, как экспорт LD_CONFIG_PATH или добавление строк в /etc/ld.so.conf с путями к GMP, MPFR, MPC не работают для меня.

Где найти решение этой проблемы?

Обновление. Похоже, это проблема конфигурации. В Gcc есть очень хорошая опция -v :-) И я вижу, что это вызов ассемблера из gcc, который не работает. С опцией -save-temps я сохранил исходники ассемблера и запустил ассемблер, но это не имеет значения.

Вместо вызова настоящего ассемблера он вызывает обертку shell-скрипта, в моем случае /data/data6/soft/src_build/avr-gcc/gcc/as, которая начинается с:

ORIGINAL_AS_FOR_TARGET=""
ORIGINAL_LD_FOR_TARGET=""
ORIGINAL_PLUGIN_LD_FOR_TARGET=""
ORIGINAL_NM_FOR_TARGET=""

И когда она формирует вызов командной строки, мы имеем следующее:

exec -o conftest.o conftest.s

что приводит к сбою, как описано выше.

Где это можно исправить? Чтобы получить вызов, подобный этому: exec as -o conftest.o conftest.s

Где хорошее место для установки переменной ORIGINAL_AS_FOR_TARGET?

13
задан Alex T 4 February 2012 в 16:54
поделиться