Migrating ARM cross toolchains to the latest version

So native toolchains seem to upgrade to the latest but how do you do that for arm-eabi. I checked dependencies and removed any toolchain specifications. Previously I think I was setting a dependencies version that would upgrade and hold back the others which I have removed.

Is there a way to say use the latest like native?

I currently get

kb: info: can't find a toolchain for the following configuration: language 'Ada', target 'arm-eabi', runtime 'light-cortex-m0p'
[[depends-on]]
gnat_arm_elf = "*"

Delete alire/ folder, run alr build. Doesn’t this work for you?

Almost. Without that I get gnat native 16.1.0 and build failure. With that then I get arm-elf 15.3.1 and build succeeds. However, alr toolchain --select shows gnat_arm_elf=16.1.0 available :thinking:

[[depends-on]]
gnat_arm_elf = "^16"

Gives me 16.1.0 but ideally for me right now then it would upgrade automatically when 17 comes out.

" Available constraint operators are the usual Ada relationals (=, /=, >, >=, <, <=) plus caret (^, any upwards version within the same major point) and tilde (~, any upwards version within the same minor point)."

[[depends-on]]
gnat_arm_elf = ">15"

The above gives me 15.3.1

Not a big deal. I think I have the one right place to update it now anyway.

gnatprove is another consideration. It’s annoying not having it pulled in but also I don’t want to nail a library to a particular version?

Have you tried alr update? It should update all dependencies (including gnat) for you. Alternatively you could also look into using alr toolchain --local --select in case that helps resolving your issue