pw_system_demo: Add clang to default stm32f4 build

To help protect against frequent regressions in the pw_system toolchain
when used with stm32 and clang, add a clang build to the pw_system_demo
target.

Includes required fixes for:
1) stm32cube compiler flags under clang
2) newlib_os_interface_stubs under clang (temporarily bypassed)

Bug: 301079199
Change-Id: I43250a4ac6c32275596d0f51b6d733036cf13065
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178930
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Taylor Cramer <cramertj@google.com>
Reviewed-by: Taylor Cramer <cramertj@google.com>
Pigweed-Auto-Submit: Armando Montanez <amontanez@google.com>
4 files changed
tree: 9aa7083aaed8a63fe3db51bfd526cf79ed3ac39a
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. kudzu/
  7. pw_alignment/
  8. pw_allocator/
  9. pw_analog/
  10. pw_android_toolchain/
  11. pw_arduino_build/
  12. pw_assert/
  13. pw_assert_basic/
  14. pw_assert_log/
  15. pw_assert_tokenized/
  16. pw_assert_zephyr/
  17. pw_async/
  18. pw_async_basic/
  19. pw_base64/
  20. pw_bloat/
  21. pw_blob_store/
  22. pw_bluetooth/
  23. pw_bluetooth_hci/
  24. pw_bluetooth_profiles/
  25. pw_boot/
  26. pw_boot_cortex_m/
  27. pw_build/
  28. pw_build_info/
  29. pw_build_mcuxpresso/
  30. pw_bytes/
  31. pw_checksum/
  32. pw_chre/
  33. pw_chrono/
  34. pw_chrono_embos/
  35. pw_chrono_freertos/
  36. pw_chrono_rp2040/
  37. pw_chrono_stl/
  38. pw_chrono_threadx/
  39. pw_chrono_zephyr/
  40. pw_cli/
  41. pw_compilation_testing/
  42. pw_console/
  43. pw_containers/
  44. pw_cpu_exception/
  45. pw_cpu_exception_cortex_m/
  46. pw_crypto/
  47. pw_digital_io/
  48. pw_digital_io_mcuxpresso/
  49. pw_digital_io_rp2040/
  50. pw_docgen/
  51. pw_doctor/
  52. pw_emu/
  53. pw_env_setup/
  54. pw_file/
  55. pw_format/
  56. pw_function/
  57. pw_fuzzer/
  58. pw_hdlc/
  59. pw_hex_dump/
  60. pw_i2c/
  61. pw_i2c_linux/
  62. pw_i2c_mcuxpresso/
  63. pw_ide/
  64. pw_interrupt/
  65. pw_interrupt_cortex_m/
  66. pw_interrupt_xtensa/
  67. pw_interrupt_zephyr/
  68. pw_intrusive_ptr/
  69. pw_kvs/
  70. pw_libc/
  71. pw_libcxx/
  72. pw_log/
  73. pw_log_android/
  74. pw_log_basic/
  75. pw_log_null/
  76. pw_log_rpc/
  77. pw_log_string/
  78. pw_log_tokenized/
  79. pw_log_zephyr/
  80. pw_malloc/
  81. pw_malloc_freelist/
  82. pw_metric/
  83. pw_minimal_cpp_stdlib/
  84. pw_module/
  85. pw_multibuf/
  86. pw_multisink/
  87. pw_package/
  88. pw_perf_test/
  89. pw_persistent_ram/
  90. pw_polyfill/
  91. pw_preprocessor/
  92. pw_presubmit/
  93. pw_protobuf/
  94. pw_protobuf_compiler/
  95. pw_random/
  96. pw_result/
  97. pw_ring_buffer/
  98. pw_router/
  99. pw_rpc/
  100. pw_rpc_transport/
  101. pw_rust/
  102. pw_snapshot/
  103. pw_software_update/
  104. pw_span/
  105. pw_spi/
  106. pw_spi_mcuxpresso/
  107. pw_status/
  108. pw_stm32cube_build/
  109. pw_stream/
  110. pw_stream_shmem_mcuxpresso/
  111. pw_stream_uart_linux/
  112. pw_stream_uart_mcuxpresso/
  113. pw_string/
  114. pw_symbolizer/
  115. pw_sync/
  116. pw_sync_baremetal/
  117. pw_sync_embos/
  118. pw_sync_freertos/
  119. pw_sync_stl/
  120. pw_sync_threadx/
  121. pw_sync_zephyr/
  122. pw_sys_io/
  123. pw_sys_io_ambiq_sdk/
  124. pw_sys_io_arduino/
  125. pw_sys_io_baremetal_lm3s6965evb/
  126. pw_sys_io_baremetal_stm32f429/
  127. pw_sys_io_emcraft_sf2/
  128. pw_sys_io_mcuxpresso/
  129. pw_sys_io_rp2040/
  130. pw_sys_io_stdio/
  131. pw_sys_io_stm32cube/
  132. pw_sys_io_zephyr/
  133. pw_system/
  134. pw_target_runner/
  135. pw_thread/
  136. pw_thread_embos/
  137. pw_thread_freertos/
  138. pw_thread_stl/
  139. pw_thread_threadx/
  140. pw_thread_zephyr/
  141. pw_tls_client/
  142. pw_tls_client_boringssl/
  143. pw_tls_client_mbedtls/
  144. pw_tokenizer/
  145. pw_tool/
  146. pw_toolchain/
  147. pw_toolchain_bazel/
  148. pw_trace/
  149. pw_trace_tokenized/
  150. pw_transfer/
  151. pw_unit_test/
  152. pw_unit_test_zephyr/
  153. pw_varint/
  154. pw_watch/
  155. pw_web/
  156. pw_work_queue/
  157. seed/
  158. targets/
  159. third_party/
  160. ts/
  161. zephyr/
  162. .bazelignore
  163. .bazelrc
  164. .black.toml
  165. .clang-format
  166. .clang-tidy
  167. .eslintrc.cjs
  168. .git-blame-ignore-revs
  169. .gitattributes
  170. .gitignore
  171. .gn
  172. .mypy.ini
  173. .prettierignore
  174. .prettierrc.cjs
  175. .pw_ide.yaml
  176. .pylintrc
  177. activate.bat
  178. Android.bp
  179. AUTHORS
  180. bootstrap.bat
  181. bootstrap.sh
  182. BUILD.bazel
  183. BUILD.gn
  184. BUILDCONFIG.gn
  185. CMakeLists.txt
  186. jest.config.ts
  187. Kconfig.zephyr
  188. LICENSE
  189. modules.gni
  190. OWNERS
  191. package-lock.json
  192. package.json
  193. pigweed.json
  194. PIGWEED_MODULES
  195. README.md
  196. rollup.config.js
  197. tsconfig.json
  198. WORKSPACE
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links