As most of you may know, the bundled GNU toolchain for the (now known as) Roger's/LibMaple Core is quite old.
Because some of the personal projects I've been working on started to give me headaches due to program size and memory consumption, I decided to investigate on how I could reduce the program size of my builds. So I found out that there is new stuff on the compilers to help with this, but unfortunately the current toolchain is too old and does not support these features.
I edited my platform.txt to use the same toolchain as the STM32 Core and to my surprise, with the same build flags, the program size reduced in almost 50%!
Also, the memory consumption reduced around 25%.
I had to make a few changes though. Had to remove the defines for min and max in wirish_math.h as they collide with the stl_algobase.h ones. Still don't understand why they don't collide with the older toolchain though. Can someone explain this to me?compiler.path={runtime.tools.xpack-arm-none-eabi-gcc-9.2.1-1.1.path}/bin/
I took my research a little further and learned that the latest STM32 Core (1.8.0) has support for the nano.specs and LTO which help to reduce the program size of your builds even more (of course, in detriment of speed).
What do you guys think about updating the toolchain of this Core?
P.S.: By the way, where are these keys -> {runtime.tools.xpack-arm-none-eabi-gcc-9.2.1-1.1.path} defined?