Toolchain version error

Hello,

Strange error message while compiling firmware after I up-versioned my toolchain!! Looks like a bug!?

*** “ARM gcc version 9.2.1 or later required, but found 10.2.1”. Stop.

Hey @armystic,

Since deviceOS 2.0.0-rc.1, gcc-arm 9.2.1 has been the required toolchain. Were you using 9.2.1 before you encountered this issue?

Could you provide some additional information regarding your system and how you are building firmware? Any additional information you can provide would greatly help to find a solution.

Seeing more of the compiler output would be helpful, as it would eliminate a lot of guesswork.

Are you using Particle Workbench or are you using the toolchains manually?

Looking back at your post history, would I be correct to assume that you are still on Linux?


My first recommendation would be to try Particle Workbench. There is an installer for Ubuntu, but if you are using a non-debian distribution or you have an existing VSCode installation you can install the Particle Workbench extension pack with:

$ code --install-extension particle.particle-vscode-pack

The Workbench documentation is available here.


Second, if you are more interested in developing firmware from the CLI and are looking for a tool to facilitate that, I would highly recommend neopo, my personal solution for local Particle development that can install and manage the necessary toolchains in a similar manner to Workbench, while providing many additional features to make installing and using Particle toolchains on *nix as painless and portable as possible.

The easiest way to install neopo is to use the universal installer:

$ bash <(curl -sL neopo.xyz/install)

Neopo is incredibly easy to install and use in a variety of environments. The installer supports macOS, Ubuntu, Debian, Mint, Fedora, Manjaro, Arch, and Void Linux. It even works on ARM devices like Raspberry Pi!

Here is the online neopo documentation and the neopo manpage.

Hey @nrobinson2000

Thanks for your fine reply.

I had compiled some years ago on version 4.x of the toolchain and never encountered this issue. Note that my current version of the tool chain in higher than 9.2.1, so a bit strange.

Here is the output after a compile attempt, didn’t go very far:

~/Software/particle/device-os$ make PLATFORM=photon
Building firmware for Production Photon, platform ID: 6, product ID: 6
make -C ./communication
make[1]: Entering directory ‘~/Software/particle/device-os/communication’
~/Software/particle/device-os/build/arm-tools.mk:64: *** “ARM gcc version 9.2.1 or later required, but found 10.2.1”. Stop.
make[1]: Leaving directory ‘~/Software/particle/device-os/communication’
build/recurse.mk:11: recipe for target ‘communication’ failed
make: *** [communication] Error 2

I’m on Ubuntu 18.04 and for the “arm-none-eabi-gcc -v” :
gcc version 10.2.1 20201103 (release) (GNU Arm Embedded Toolchain 10-2020-q4-major)

I didn’t know about neopo, certain to look into it.

Thanks again, but still don’t understand why my higher version of the toolchain should remain incompatible with the target of 9.2.1, I thought it may have just been a compile script bug.