AVR-GCC15.1 toolchain available

If you are eager to use the AVR-GCC15.1 toolchain, it can now be made available by installing (an experimental fork of) a board package, namely the Arduino AVR Boards. You only have to add the following Additional Boards Manager URLs in the Preferences dialog:

https://felias-fogg.github.io/ArduinoCore-avr/package_GCC15_ArduinoCore-avr_index.json

After that, update the package to the most recent version (which will have a '-gcc15x' suffix). And if you are really adventurous, you can even select one of the more recent C++ language variants instead of c++11, which is the currently enabled version. This can be accomplished by using the new #pragma arduino directive first introduced in TinyCore. Add, for example, the following line to your sketch file:

#pragma arduino cpp_flags -std=c++23

Alternatively, if you want to change things globally, you can add platform.local.txt to the board package folder with the appropriate settings.

Some caveats:

  • The new toolchain itself is much bigger than the original 7.3.0 one.
  • I used the toolchain set provided by Microchip, which unfortunately does not contain a 32-bit Windows version, which means that Windows users cannot use the IDE 1.8.19 to run the toolchain.
  • There is also no ARM64 Linux version.

If there is high demand, I could be convinced to generate the 32bit Window and ARM64 Linux versions.

On the positive side:

  • For the Mac, there are universal binaries, i.e., you do not need Rosetta any longer.
  • In the 15.1 toolchain, a number of bugs, in particular in connection with debugging, have been fixed.
  • The board packages are also debug-enabled.
  • If things do not work out, you always can easily downgrade to the board package versions with the original 7.3.0 toolchain.

My main intention was to get better results when debugging. Unfortunately, it turned out that with the new version simple local variables could note be tracked correctly anymore. The generated debugging information must be buggy! So, I switched back to 7.3.0. Sigh. You still can try out the fork, I mentioned.

Wow. 85MB worth of "avr-lto-dump", which didn't exist before. The largest binary by far... avr-gdb looks to be second (31MB) - also not included in the Arduino distribution.

You are looking at the macOS distribution, right? These are fat binaries, containing Intel and Arm code. But still ...