Update Clang toolchain used by Bazel #2879

Merged
Prabhuk merged 2 commits from update_toolchain_mar20 into develop 2026-06-29 12:50:47 -05:00
Prabhuk commented 2026-03-25 13:36:37 -05:00 (Migrated from github.com)

The Clang toolchain is updated to a newer revision 9431920bfaee50f4b1552fc01ea081a5c18a5a3b from March 20, 2026.

Fixes #2859

The Clang toolchain is updated to a newer revision 9431920bfaee50f4b1552fc01ea081a5c18a5a3b from March 20, 2026. Fixes #2859
kilograham (Migrated from github.com) reviewed 2026-03-25 13:36:37 -05:00
github-actions[bot] commented 2026-03-25 13:36:50 -05:00 (Migrated from github.com)

Please do not submit against master, use develop instead

Please do not submit against `master`, use `develop` instead
Prabhuk commented 2026-03-31 11:36:58 -05:00 (Migrated from github.com)

CC: @petrhosek @kilograham

CC: @petrhosek @kilograham
lurch (Migrated from github.com) reviewed 2026-06-23 18:47:39 -05:00
@ -11,2 +8,3 @@
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned armv8m.main_hard_fp_unaligned_size)
# these are all the directories under LLVM embedded toolchain for ARM (newlib or pibolibc)
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned)
else()
lurch (Migrated from github.com) commented 2026-06-23 18:47:39 -05:00

Was this just a "testing print", which now ought to be removed?

Was this just a "testing print", which now ought to be removed?
will-v-pi (Migrated from github.com) reviewed 2026-06-24 03:56:12 -05:00
will-v-pi (Migrated from github.com) commented 2026-06-24 03:56:12 -05:00

This changes the default PICO_HARD_FLOAT_ABI for all Clang users, which I don't think is necessary for this PR - all the other Clang toolchains still support both hard and soft float ABIs, it's just the new Google toolchain that only supports hard float.

A better fix might be to remove armv8m.main-unknown-none-eabi from the softfp PICO_CLANG_RUNTIMES list, which should then throw the Could not find an llvm runtime error if PICO_HARD_FLOAT_ABI=0 (assuming support for the older soft float toolchain is not required).

This changes the default `PICO_HARD_FLOAT_ABI` for all Clang users, which I don't think is necessary for this PR - all the other Clang toolchains still support both hard and soft float ABIs, it's just the new Google toolchain that only supports hard float. A better fix might be to remove `armv8m.main-unknown-none-eabi` from the softfp `PICO_CLANG_RUNTIMES` list, which should then throw the `Could not find an llvm runtime` error if `PICO_HARD_FLOAT_ABI=0` (assuming support for the older soft float toolchain is not required).
Prabhuk (Migrated from github.com) reviewed 2026-06-24 11:59:49 -05:00
@ -11,2 +8,3 @@
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned armv8m.main_hard_fp_unaligned_size)
# these are all the directories under LLVM embedded toolchain for ARM (newlib or pibolibc)
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned)
else()
Prabhuk (Migrated from github.com) commented 2026-06-24 11:59:49 -05:00

yes. I'll drop the message.

yes. I'll drop the message.
Prabhuk (Migrated from github.com) reviewed 2026-06-28 13:18:01 -05:00
Prabhuk (Migrated from github.com) commented 2026-06-28 13:18:01 -05:00

Done. PTAL

Done. PTAL
Prabhuk (Migrated from github.com) reviewed 2026-06-28 13:18:11 -05:00
@ -11,2 +8,3 @@
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned armv8m.main_hard_fp_unaligned_size)
# these are all the directories under LLVM embedded toolchain for ARM (newlib or pibolibc)
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned)
else()
Prabhuk (Migrated from github.com) commented 2026-06-28 13:18:10 -05:00

Done. PTAL

Done. PTAL
kilograham (Migrated from github.com) reviewed 2026-06-29 11:41:49 -05:00
@ -9,3 +7,2 @@
# todo - doesn't seem to be a hard_fp variant for google atm?
# these are all the directories under LLVM embedded toolchain for ARM (newlib or picolibc)
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned armv8m.main_hard_fp_unaligned_size)
# these are all the directories under LLVM embedded toolchain for ARM (newlib or pibolibc)
kilograham (Migrated from github.com) commented 2026-06-29 11:41:50 -05:00
    set(PICO_CLANG_RUNTIMES armv8m.main_soft_nofp armv8m.main_soft_nofp_unaligned armv8m.main_soft_nofp_unaligned_size  armv8m.main-unknown-none-eabi)
```suggestion set(PICO_CLANG_RUNTIMES armv8m.main_soft_nofp armv8m.main_soft_nofp_unaligned armv8m.main_soft_nofp_unaligned_size armv8m.main-unknown-none-eabi) ```
kilograham (Migrated from github.com) reviewed 2026-06-29 11:42:52 -05:00
@ -9,3 +7,2 @@
# todo - doesn't seem to be a hard_fp variant for google atm?
# these are all the directories under LLVM embedded toolchain for ARM (newlib or picolibc)
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned armv8m.main_hard_fp_unaligned_size)
# these are all the directories under LLVM embedded toolchain for ARM (newlib or pibolibc)
kilograham (Migrated from github.com) commented 2026-06-29 11:42:52 -05:00

I'm going to revert this line, so you can build both hard-fp or soft-fp with google llvm (which means any compiler version is suppoed as long as you pass the right hard/soft float)

This is the best option i can see given the issues with google-llvm not indicating in any way that it has changed ABI

I'm going to revert this line, so you can build both hard-fp or soft-fp with google llvm (which means any compiler version is suppoed as long as you pass the right hard/soft float) This is the best option i can see given the issues with google-llvm not indicating in any way that it has changed ABI
kilograham (Migrated from github.com) reviewed 2026-06-29 11:45:24 -05:00
@ -9,3 +7,2 @@
# todo - doesn't seem to be a hard_fp variant for google atm?
# these are all the directories under LLVM embedded toolchain for ARM (newlib or picolibc)
set(PICO_CLANG_RUNTIMES armv8m.main_hard_fp armv8m.main_hard_fp_unaligned armv8m.main_hard_fp_unaligned_size)
# these are all the directories under LLVM embedded toolchain for ARM (newlib or pibolibc)
kilograham (Migrated from github.com) commented 2026-06-29 11:45:24 -05:00
    set(PICO_CLANG_RUNTIMES armv8m.main_soft_nofp armv8m.main_soft_nofp_unaligned armv8m.main_soft_nofp_unaligned_size armv8m.main-unknown-none-eabi)
```suggestion set(PICO_CLANG_RUNTIMES armv8m.main_soft_nofp armv8m.main_soft_nofp_unaligned armv8m.main_soft_nofp_unaligned_size armv8m.main-unknown-none-eabi) ```
Prabhuk commented 2026-06-29 11:57:04 -05:00 (Migrated from github.com)

As discussed offline, we are bumping the toolchain revision to a new enough revision but prior to toolchain switching the float ABI for cortex-m33 runtime libraries to hard float.

As discussed offline, we are bumping the toolchain revision to a new enough revision but prior to toolchain switching the float ABI for cortex-m33 runtime libraries to hard float.
kilograham (Migrated from github.com) approved these changes 2026-06-29 12:01:26 -05:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-raspberrypi/pico-sdk!2879
No description provided.