pw_log_tokenized: Add gcc_partially_tokenized backend

Adds a partially tokenized GCC backend which tokenizes all logs
except for C++ logs in templated functions which would otherwise
be lost due to a GCC compiler bug.

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