Skip to content

Update Clang toolchain used by Bazel#2879

Open
Prabhuk wants to merge 76 commits intoraspberrypi:masterfrom
Prabhuk:update_toolchain_mar20
Open

Update Clang toolchain used by Bazel#2879
Prabhuk wants to merge 76 commits intoraspberrypi:masterfrom
Prabhuk:update_toolchain_mar20

Conversation

@Prabhuk
Copy link
Copy Markdown

@Prabhuk Prabhuk commented Mar 25, 2026

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

Fixes #2859

kilograham and others added 30 commits July 29, 2025 07:01
find src -type f -perm /a+x -name '*.h' -print0 | xargs --null chmod -x
The order depends on whether you're enabling or disabling
* Update sha256_alt.h

Fix trivial copy-paste error in comment

* Update README.md

Another small typo in documentation
Fix copy-paste-error. With RP2350's Hazard3 should never show up, but anyway.
The sideset_bit_count in pio_encode_sideset_opt is unsigned, so any comparison
"sideset_bit_count >= 0" will always be true.  GCC with pedantic warnings
will complain when this happens.

Remove the unneeded >=0 portion of the parameter validity check.

Fixes raspberrypi#2607
Since ARM hosts have builtins listed in hardware/sync.h, these builtins
should be clobbered. Newer versions of LLVM/Clang emit an error when
clobbering these builtins, so this switches the overrides to use the
same patterns as pico_atomic to clobber the builtins.
…aspberrypi#2632)

Partially fixes raspberrypi#2630, as it doesn't take care of the required delay between setting the LED
If the compiler in use offers __sev(), __wfe(), or __wfi(), forward
declare them to be sure they're available for use.
…aspberrypi#2641)

* Add Raspberry Pi 500 board support

- W25X10CL flash configuration for DSPI mode
- USB standalone operation support
- Complete GPIO pin documentation with keyboard matrix mapping
- Debug UART configuration on GP16
- Hardware-specific boot and power management settings

Tested with TinyUSB MIDI example - successful enumeration and operation.

* Correct Pi 500 board support: RP2040 chip, proper naming

- Rename to raspberry_pi_pi500_rp2040.h for clarity
- Correct chip type from RP2350 to RP2040
- Remove pico2.h inheritance, use self-contained definitions
- Add comprehensive GPIO pin mapping documentation
- Include critical power management warning
- Configure W25X10CL flash support for RP2040

* PICO_RP2040_B0_SUPPORTED can be changed to 0, since all Pi 500s are using RP2040 B2.

* Update Raspberry Pi 500 board support for minimal original intent.
- Fix mistake done in pico.h PICO_RP2040_B0_SUPPORTED 0 => 1
- Disable B0 support in pi500_rp2040
- Fix flash size 1M-Bit not 1Mb
- Add Matrix pin definition

* Fix flash size.
Add warning on GP19
Remove GP17

* Adding UART TX GP16

* Add Caps led as default led

---------

Co-authored-by: Jerome Hordies <jerome.hordies.ext@luminus.be>
…aspberrypi#2671)

Includes rejigging it a bit, as the checking script requires #defines for all configs
Co-authored-by: Andrew Pochinchik <andrew.pochinchik@ftco.ltd>
Fixes raspberrypi#2678

The FreeRTOS, Poll, and Threadsafe async_context implementations have
execute_sync functions that's set as a member of their
async_context_type_t struct for use by the user-visible async_context
API.  These implementation functions should not be accessible
by user code which chouls only use async_context_execute_sync and
not the low-lever async_context_{freertos,poll,threadsafe}_execute_sync
implementation.

Make these private functions static like the other low-level functions
in the async_context_type_t struct.
Bazel configuration adds a dependency on hardware_claim in 'host' but
it doesn't exist there.  It's in 'common'.

Fixes raspberrypi#2738
* Add empty 'check_gpio_param' to host GPIO

All the approriate gpio_xxx functions now call check_gpio_param.  This
provides an easy way for a project to add simple range checking by
defining a final version of check_gpio_param, which whatever error
mechanism it chooses if an invalid value is passed.

Refs raspberrypi#2736

* Declare all host GPIO functions weak

This allows them to be easily overridden by user code for testing
purposes.

Refs raspberrypi#2736

* Mark all parameters in host GPIO unused

This prevents lots of compiler warnings if the default warning level
is increased.

Refs raspberrypi#2736

* Add missing functions/types to host GPIO

Some RP2350 GPIO_FUNC_ enums don't match the values defined in the
rp2350 hardware header but the actual values shouldn't matter if only
the enums are used (i.e. no magic numbers).

Refs raspberrypi#2736
mimi89999 and others added 29 commits March 2, 2026 13:13
…rity (raspberrypi#2832)

* Change a couple of hardcoded numbers to PIO_INSTRUCTION_COUNT

for clarity

* fix sign-compare warning
…arameter to gpio_start (raspberrypi#2831)

in order to avoid confusion with pio_set_gpio_base's gpio_base parameter
…aspberrypi#2764)

* remove guards that disable sdio_usb when tinyusb_host is linked in; it works just fine

* implement better guards
…aspberrypi#2651)

* Use 'constexpr' when including pio header files from a C++ compiler

In particular this allows compile-time checks to be performed on the
contents of pio_program structs via 'static_assert'.

This could be used (for example) to confirm that multiple PIO programs
fit in a single PIO module and abort compilation if not.

Fixes raspberrypi#2650

* Use feature test macro to check for 'constexpr' support

* Rename modifier PIO_CONST to __pio_const

---------

Co-authored-by: Graham Sanderson <graham.sanderson@gmail.com>
…ABI=1 (raspberrypi#2822)

* Enable hard-float ABI support for pico_float and pico_double on m33

Resolves raspberrypi#2783

Signed-off-by: Andy Lin <andylinpersonal@gmail.com>

* Add (non google) LLVM support, and replace calling convention check with #if defined(__ARM_PCS_VFP)

* switch float.h to use static inline method for int2float() etc in VFP mode rather than #define

* float/double test cleanup - particularly:

- splitting out executable for each test type for pico_float/double_test
- removing undefined behavior from custom_float_funcs_test.c, to de-confuse clang
- add test of denormal->int

Note some tests still fail on llvm libc (at least version 19)

* fix some issues with newer llvm_libc/compiler as used by bazel build

* keep check_configs happy

* another bazel issue

* introduce pico_double_pico_dcp for consistency

* fixup debug output based on previous commit

* remove unnecessary build guard from double_conv_m33.S

* allow -1 for neg_denormal->int rounding towards minus infinity

* Update test/pico_float_test/CMakeLists.txt

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>

* Update test/pico_float_test/CMakeLists.txt

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>

* - add fma/_fast functions to pico_float_test/pico_double_test
- fix guard for TEST_SATURATION in pico_double_test - GCC doesn't clamp either

* - double functions were only wrapped in pico_double_pico not pico_double_pico_dcp explicitly (i.e. explicitly setting double impl to pico_dcp was not selecting our versions)

* avoid extra stack alignment push (per review comment)

* fix fma return code in VFP mode (register transfer was the wrong way around)

* separate PCS=VFP and non-PCS-VFP versions of fma_fast

* remove saving_func_return (which is just bx lr) and fold the separate pop of lr, into a pop of pc

* better fix for wrapping right libraries

* rename some labels from _entry (which is an internal entry point) to _softfp to be clear that these are the function entry points which work with softfp calling conventions

* Make bazel pico_float build not wrap SCI functions on RISC-V to match CMake build

* Split out FMAF as a selectable wrapped item since we don't want to wrap it for VFP

* fix typos

* fix test

---------

Signed-off-by: Andy Lin <andylinpersonal@gmail.com>
Co-authored-by: Andy Lin <andylinpersonal@gmail.com>
Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>
…entation(compiler) and PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS as a semi-workaround for the c library buffering stdout during printf (raspberrypi#2821)

Note: the correct solution would be to flush stdout in the short-circuited functions, but this rather destroys the point of making them fast.

This takes care of the common case. For complete/best support use PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS=0 when using compiler printf
* Fix some errors from -fanalyzer.

Includes a genuine bug in multicore_doorbell_claim() which seemed to use the wrong bit for the second core.

* Return NULL instead of panicking on secondary allocation fail in pico_time
…errypi#2618)

* Fix PIO comment and assertion typos

* Add (and use) 32-bit version of check_pio_pin_mask64

* minor comment tidyup

* small code size improvement

* oops

* hmm

* fix typos

---------

Co-authored-by: Graham Sanderson <graham.sanderson@raspberrypi.com>
* fix issues with and improve tests for dcp conversions of INFINITES to fixed point values

* improve comments

* fix outstanding todo in __aeabi_dmul via DCP which improves speed/size

* fix missing DCP state saves for float2int, float2uint and float2fix

* slightly improve implementation of saturation of INFINITES

* should not include sf_table.h in double.h

* point out that float/double->fixed/int saturate in the docs

* move some doxygen into RP2350 specific and change include guards ro be RP2350 specific

* more doc tweaks

* fixup check names to be more consistent
* ensure that fix<>float methods (not inline versions) are called too in VFP tests

* remove sf_table.h include from float.h as it is not part of the public API

* fix float->fixed/int infinite conversions via VFP

* 2 instructions -> 1

* add missing call_ tests for float2fix_z and float2ufix_z

* fix test descriptions

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>

---------

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>
Without the alternate macro mode, when building with Clang, the
arguments to macros weren't evaluated.
* Update btstack to v1.8
The Clang toolchain is updated to a newer revision
cb3d7ffb09e8be115da1fd57a6c09860e89f5449 from Feb 23, 2026.
add a test driver script to run a matrix of tests via gdb on device
…pberrypi#2863)

Add Clock Divider = 1 to documentation of pio_get_default_sm_config
Need to handle missing header guard in cyw43.h

Fixes raspberrypi#2642
* Fix PICO_PANIC_FUNCTION= imelementations
- stack should remain properly aligned
- risc-v was actually completely broken for user defined handlers because GCC was auto-pushing vaargs for naked function even with no stack frame
- new implementation supports full call stacks in gdb for Arm or RISC-V when hitting breakpoint in panic function
- new config defines make it explicit that gdb full stgack trace comes at the cost of corrupting stack based vaargs 4th is corrupted on Arm, later on RiSC-V (7 maybe?)
- add new test case
…2817)

* Add board definition for Soldered NULA Max RP2350 board

* Fix wrong communication port mapping

* Add user button and hdmi pin defines

* Use right default UART port
* Remove duplicated defines from bootrom.h

See raspberrypi#2619 for rationale

* more rationalization of constant names

* comment fix

* Apply suggestions from code review

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>

---------

Co-authored-by: graham sanderson <graham.sanderson@raspberrypi.com>
…rypi#2799)

* Enhance JSON output with additional program metadata

Adds escaping for JSON strings and includes new fields in the output such as pioASM version, pioVersion, usedGPIORanges, in/out/setCount configurations, movStatus, fifoConfig, clockDiv, codeBlocks, and langOpts. Also uncomments instruction output with disassembly strings and ensures proper escaping for symbol names and other string fields.

* Move JSON Output to a different library in BUILD.bazel

Otherwise the factory code that adds the output as an option to the CLI never runs.

* Fix movStatus type output formatting in JSON

Encloses the movStatus type value in quotes to ensure correct JSON string formatting in the output.

* Add JSON schema for pioasm JSON output.

* Add "$schema" to properties to enable in-json validation.

Co-authored-by: will-v-pi <108662275+will-v-pi@users.noreply.github.com>

* Changing json_output_schema.json to 4-space tabs.

---------

Co-authored-by: will-v-pi <108662275+will-v-pi@users.noreply.github.com>
…pi#2717)

* Correct powman_timer_enable_alarm_at_ms documentation note

* review change

* Add semi-colon

---------

Co-authored-by: Graham Sanderson <graham.sanderson@raspberrypi.com>
Co-authored-by: will-v-pi <108662275+will-v-pi@users.noreply.github.com>
The Clang toolchain is updated to a newer revision 9431920bfaee50f4b1552fc01ea081a5c18a5a3b from March 20, 2026.

Fixes raspberrypi#2859
@github-actions
Copy link
Copy Markdown

Please do not submit against master, use develop instead

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update clang toolchain revision in Bazel builds