Пытаюсь скомпилировать проект. Если обходиться целочисленной арифметикой, то всё хорошо. Но если попытаться притащить libm или произвести операции с плавающей точкой получаем вот это:
APP/src/main.c:33: undefined reference to `__aeabi_i2d'
APP/src/main.c:34: undefined reference to `__aeabi_i2d'
APP/src/main.c:34: undefined reference to `__aeabi_d2iz'
z:/home/alex/soft/winarm/bin/../lib/gcc/arm-eabi/4.3.0/../../../../arm-eabi/lib/thumb2\libm.a(lib_a-w_sqrt.o): In function `sqrt':
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/w_sqrt.c:71: undefined reference to `__aeabi_dcmplt'
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/w_sqrt.c:79: undefined reference to `__aeabi_ddiv'
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/w_sqrt.c:83: undefined reference to `__errno'
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/w_sqrt.c:86: undefined reference to `__errno'
z:/home/alex/soft/winarm/bin/../lib/gcc/arm-eabi/4.3.0/../../../../arm-eabi/lib/thumb2\libm.a(lib_a-e_sqrt.o): In function `__ieee754_sqrt':
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/e_sqrt.c:110: undefined reference to `__aeabi_dmul'
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/e_sqrt.c:110: undefined reference to `__aeabi_dadd'
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/e_sqrt.c:117: undefined reference to `__aeabi_dsub'
c:\winarms\build\gcc-build\arm-eabi\thumb2\newlib\libm\math/../../../../../../gcc-4.3.0/newlib/libm/math/e_sqrt.c:117: undefined reference to `__aeabi_ddiv'
collect2: ld returned 1 exit status
make: *** [Makefile:67: CM530.elf] Ошибка 1
Контроллер - STM32F103RE. Флаги компилятора — -mcpu=cortex-m3 -mthumb -Wall -g -Os
.
Сменить тулчейн возможности нет (точнее она есть, но другие тулчейны тупо не компилируют говнокод производителя железки (точнее компилируют, но оно не работает при этом)). При этом тулчейн вендовый, поэтому приходится запускать под wine. Под wine тулчейн работает нормально, поэтому проблема явно не в этом.
Куда копать?