ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
1355427 Топик полностью
Nikolay_Po (27.09.2023 20:47, просмотров: 91) ответил klen на Свежак KGP для мелко армов и riscv, ност linux x86_64
Руки дошли, проверил, с Cortex-M3. Вроде заработало. Пришлось убрать из опций линкера "--specs=nano.specs". Код из 40кБ уменьшился до 33кБ с макс. оптимизациями. Компилирует быстрее армовского. Но работает ли в железе, в микроконтроллере - ещё не проверял. 

arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi

код 40513 байт.


arm-kgp-eabi_@_x86_64-kgp-linux-gnu_znver3-avx2_20230315

код 33356 байт. Приятно.


Есть мелкий недочёт:


/klen/home/src/newlib/newlib/libc/stdio/nano-vfprintf.c: In function ‘_svfprintf_r.constprop’:

/klen/home/src/newlib/newlib/libc/stdio/nano-vfprintf.c:641:20: error: ‘n’ may be used uninitialized [-Werror=maybe-uninitialized]

/klen/home/src/newlib/newlib/libc/stdio/nano-vfprintf.c:474:16: note: ‘n’ was declared here

lto1: all warnings being treated as errors

make[1]: *** [/tmp/ccQMkend.mk:2: /tmp/ccURFVwF.ltrans0.ltrans.o] Error 1

lto-wrapper: fatal error: make returned 2 exit status

compilation terminated.

Полез в исходник, чтобы поправить, но не сработало - это сообщение из уже скомпилированной библиотеки, и путь пользователя klen, а не nikolaypo.

А предупреждения как ошибки у меня всегда стоит - так код надёжнее получается, когда компилятору не о чем предупредить.