mbedtls: Avoid the use of unsupported libc functions

We intentionally don't provide free, calloc, fprintf, printf and exit
in pw_libc because they cannot be portably implemented on embedded
platforms. Use the mbedtls platform macros to avoid references to
undefined symbols.

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