Hi. I have a project that uses toolchain-gccarmnoneeabi to compile for a Cortex-M3.
However, the newest version available here: PlatformIO Registry is GCC 10.3.1
I specify
platform_packages =
toolchain-gccarmnoneeabi@=1.100301.220327
In my platformio.ini file to use the 10.3.1 version.
However, i would like to use the newest version available from ARM, GCC 12.2 (Arm GNU Toolchain Downloads – Arm Developer)
I know that i can manually download it and point to it in platformio.ini, but that is a hassle if i want others to easily be able to compile my project.
Is there any way i can automatically point to the 12.2 release from ARM? Alternatively, is there somebody who knows who i can contact to get platformio/toolchain-gccarmnoneeabi updated with the newer GCC versions?
Regards
I think the PlatformIO staff read this post and uploaded the new version, just 12 minutes ago: Registry.
So now you can use GCC 12.2.1 with
platform_packages =
toolchain-gccarmnoneeabi@~1.120201.0
1 Like
Thank you, and thank you to the person who uploaded it, however, i still have a slight problem with it:
When i compile with the uploaded versions, i get these compiler errors when trying to compile .c files (.cpp seems to work for some reason):
Fatal error: invalid -march= option: `armv7-m'
I’m not sure why that is. If i overwrite the content of ~/.platformio/packages/toolchain-gccarmnoneeabi/
with what is in https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.xz , the compilation works, so something might have gone wrong with packaging it?
EDIT:
I think some of the symbolic links may be broken
doing
diff --recursive --no-dereference Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/ ~/.platformio/packages/toolchain-gccarmnoneeabi/
Gives
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/ar is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/ar is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/as is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/as is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/ld is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/ld is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/ld.bfd is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/ld.bfd is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/nm is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/nm is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/objcopy is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/objcopy is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/objdump is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/objdump is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/ranlib is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/ranlib is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/readelf is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/readelf is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/bin/strip is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/bin/strip is a symbolic link
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/include: bits
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/include: rpc
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/arm/v5te/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/arm/v5te/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/arm/v5te/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/arm/v5te/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v6-m/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v6-m/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-a/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-a/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-a+fp/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-a+fp/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-a+fp/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-a+fp/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-a+simd/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-a+simd/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-a+simd/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-a+simd/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7e-m/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7e-m/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7e-m+dp/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7e-m+dp/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7e-m+dp/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7e-m+dp/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7e-m+fp/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7e-m+fp/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7e-m+fp/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7e-m+fp/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7+fp/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7+fp/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7+fp/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7+fp/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-m/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-m/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-r+fp.sp/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-r+fp.sp/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7-r+fp.sp/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7-r+fp.sp/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7ve+simd/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7ve+simd/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7ve+simd/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7ve+simd/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8.1-m.main+mve/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8.1-m.main+mve/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-a/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-a/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-a+simd/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-a+simd/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-a+simd/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-a+simd/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-m.base/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-m.base/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-m.main/nofp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-m.main/nofp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-m.main+dp/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-m.main+dp/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-m.main+dp/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-m.main+dp/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-m.main+fp/hard/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-m.main+fp/hard/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v8-m.main+fp/softfp/libg.a is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v8-m.main+fp/softfp/libg.a is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-c++ is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-c++ is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc-12.2.1 is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-gcc-12.2.1 is a symbolic link
File Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-ld is a regular file while file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-ld is a symbolic link
Only in /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/: package.json
Only in /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/: .piopm
Only in /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/: README.md
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: annotate
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: as.html
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: binutils.html
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: cpp
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: cppinternals
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: gcc
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: gccinstall
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: gccint
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: gdb
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: gfortran
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: gprof.html
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: ld.html
Only in Downloads/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/share/doc: stabs
And doing e.g. file /home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7e-m/nofp/libg.a
Gives
/home/stefan/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/lib/thumb/v7e-m/nofp/libg.a: broken symbolic link to arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a
CC @ivankravets, package probably broken-
1 Like
Thanks for the report. We’ve just published the fixed version of the toolchains. Could you run the following command in your project?
pio pkg update -t "toolchain-gccarmnoneeabi@~1.120201.0"
Does it work now?
1 Like
I see that 1.120201.221222 was uploaded. It works. Thank you 
1 Like