Проблема при компиляции 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: не найден? Какую программу написать? Где 89 строк?
Решения, такие как экспорт LD_CONFIG_PATH или добавление строк в /etc/ld.so.conf с пути к GMP, MPFR, MPC, не работают для меня.
Где найти решение этой проблемы?
Обновление. Это проблема конфигурации. У Gcc есть очень хороший вариант -v:-) И я вижу, что это ассемблерный вызов из gcc, который терпит неудачу. С опцией -save-temps я сохранил источник ассемблера и запускаю ассемблер, но это не имеет значения.
Вместо вызова реального ассемблера он вызывает оболочку оболочки script, в моем случае /data/data 6/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 как -o conftest.o conftest.s
Где хорошее место для установки переменной ORIGINAL_AS_FOR_TARGET?