свежак 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
теперь сакральный вопрос - для масдая делать???, будет ктонить пользовать или продолжаем сидеть на игле и глотать "колеса для кейла"