Снова здравствуйте.
В деле появился некоторый прогресс.
С FPU вопрос решился банальным гуглением: (в прошлый раз я умудрился пропустить
эту страницу)
Цитата
Generating VFP Instructions
Question
How do I get the compiler to generate VFP instructions?
Answer
Use the options -mfpu=vfp -mfloat-abi=softfp to enable VFP instructions.
If you have a VFPv3 you may use -mfpu=vfp3 -mfloat-abi=softfp to enable VFPv3 instructions.
The compiler then assumes that your target hardware has VFP and generates appropriate code. GCC still uses the same ABI used on non-VFP processors, so your program will work fine if part of your code is compiled with software floating-point and other parts are compiled with the options given above.
Do not use -mfloat-abi=hard, which is not yet implemented. When this option is implemented it will generate code that is incompatible with the supplied runtime libraries.
Благодаря сообщению
Harbour удалось установить gcc-4.3.2: вместо make all, компилирующего всё, что есть, нужно было сделать make all-gcc, собирающего только сам компилятор. Плюс, configure нужно было передать
-mfpu=vfp -mfloat-abi=softfp.
Следующая проблема состоит в том, что arm-elf-ld не находит
crti.o (которого нет в $PREFIX/arm-elf). Я собирал gcc с
--disable-multilib, и потому подправил
gcc-4.3.2/gcc/config/arm/t-arm-elf:
было:
Код
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
# If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
# EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
стало:
Код
# EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
# If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
Увы,
crti.o так и не появился.
Сообщение отредактировал dragigrja - Jan 18 2009, 08:17