ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
1410904
klen (06.03.2024 01:15 - 08.03.2024 19:57, просмотров: 2307)
свежак kgp. для мелко arm'ов. наконец то дотащил эту лошадь до статической сборки - не тянет либов. хост x86_64-kgp-linux-gnu_znver4-avx512 

http://klen.org/Files/DevTools/x86_64-kgp-linux-gnu_znver4-avx512/arm-kgp-eabi/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_znver4-avx512_20240305_euphrasia.tar.7z


multilib :

thumb/cortex-m0

thumb/cortex-m0.Os

thumb/cortex-m0.Ofast

thumb/cortex-m0plus

thumb/cortex-m0plus.Os

thumb/cortex-m0plus.Ofast


thumb/cortex-m3

thumb/cortex-m3.Os

thumb/cortex-m3.Ofast


thumb/cortex-m4.float_abi_hard.fpv4-sp-d16

thumb/cortex-m4.float_abi_hard.fpv4-sp-d16.Os

thumb/cortex-m4.float_abi_hard.fpv4-sp-d16.Ofast


thumb/cortex-m7.float_abi_hard.fpv5-sp-d16

thumb/cortex-m7.float_abi_hard.fpv5-sp-d16.Os

thumb/cortex-m7.float_abi_hard.fpv5-sp-d16.Ofast

thumb/cortex-m7.float_abi_hard.fpv5-dp-d16

thumb/cortex-m7.float_abi_hard.fpv5-dp-d16.Os

thumb/cortex-m7.float_abi_hard.fpv5-dp-d16.Ofast





gcc/g++ 14.0.1 с/c++/lto здесь интерсна поддержка С++23 и в частности C++ coroutine на уровне языка, для мелких микроконтроллеров куда не всунуть freertos и другие похожие штуки.

binutils/gdb 2.42.50.20240305, в сборку включен ликер gold

newlib 4.4.0 сконфигурено --target=arm-kgp-eabi --disable-werror --enable-multilib --disable-nls --enable-newlib-multithread --disable-newlib-supplied-syscalls --enable-newlib-io-long-long --enable-newlib-io-c99-formats --enable-newlib-reent-check-verify --enable-newlib-register-fini --enable-newlib-retargetable-locking

newlib 4.4.0 nano сконфигурено --target=arm-kgp-eabi --disable-werror --enable-multilib --disable-nls --enable-newlib-multithread --disable-newlib-supplied-syscalls --enable-newlib-reent-check-verify --enable-newlib-reent-small --enable-newlib-retargetable-locking --disable-newlib-fvwrite-in-streamio --disable-newlib-fseek-optimization --disable-newlib-wide-orient --enable-newlib-nano-malloc --disable-newlib-unbuf-stream-opt --enable-lite-exit --enable-newlib-global-atexit --enable-newlib-nano-formatted-io


gsl 2.7 для тех что не имеют fpu сделан порт float-like
для тех что имеют fpu float сделан порт float-like c использованием инструкций -mfpu=fpv4-sp-d16 -mfloat-abi=hard

для тех что имеют fpu float/double сделан порт float-like и double-like c использованием инструкций -mfpu=fpv5-d16 -mfloat-abi=hard


хост x86_64-kgp-linux-gnu_znver4-avx512, значит у Вас должен быть linux, и процессор споддержкой avx512. собирал с ключиками для процессорного ядра Амуде Zen4 но что то меня гложат сомнения что этих ключей достаточно чтобы сделать код несовместимый с Штеуудовскими процессорами которые имеют avx512. тоесть на Штеудах тоже должно работать - гдавное чтоб был avx512


должно взлететь из коробки но это не точно...

если кто то потестит то будет здорово - если все ок, сделаю для сборку для "слабых процессоров" уровня skylike и bdver4 - чт об на старых говнокомпиках в недобитых НИИ можно было девелопить.

если это тоже потестится.... так и быть сделаю тоже самое для масдая..... но че то я смотрю как вы обновляете винду 11 и "жуть в венах стынет" от того как это выглядит... срочно переходите на линух :) (не БАДы, не рекламма!)


если все да, прокркчу фарш для riscv32.


локально - то есть у меня все проверено на рабочих проектах - зашитые девайсы работают и уже в серии.


[08.03.24] сделал такую же сборку но для процессора уровня штеуд Nocona SSE3 и выше - можно работать на старинных компиках на гос.работе :) где не балуют игровыми производительными компами.

разницы в коросте компиляции и линовке на моем самом большом проекте (stm32h750 + freertos + httpd + спектральная обработка данных с ацп в реальном времени + отсылка в сеть потока обработанных данных ) не обозначилось - погрешность измерения больше от раза к разу чем эта разница от варианта сборки бинарей компиллера. тут справедливости нужно сказать что на наши эмбеддерские проекты довольно маленькие ... если насувать 100500 этажных C++ шаблонов и тд... то когда нибудь машина задумается.... пока получилось файловый ввод-вывод лимитирует скорость компиляции и линовки..

http://klen.org/Files/DevTools/x86_64-kgp-linux-gnu_nocona-sse3/arm-kgp-eabi/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_nocona-sse3_20240308_euphrasia.tar.7z


если интересно то анализ используемым инструкциям для одного из бинарей в двух сборках - результат в виде двух отсортированных по алфавиту списков использованных инструкций проца, видно что для zver4 во всю генерируется avx512 не может не радовать.

nocona_zver4_isa_.tar.xz


теперь сакральный вопрос - для масдая делать???, будет ктонить пользовать или продолжаем сидеть на игле и глотать "колеса для кейла"