pw_build_info: Add GNU build ID support

Introduces the pw_build_info module, and adds support for reading GNU
build IDs from python and from inside the context of a C++ application.

Change-Id: I105627cffff28f5a6a2dbdf396be34143b0637d9
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/53760
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Armando Montanez <amontanez@google.com>
16 files changed
tree: 20333930b4e756d951f110f04d17cf15b3d772c9
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot/
  14. pw_boot_cortex_m/
  15. pw_build/
  16. pw_build_info/
  17. pw_bytes/
  18. pw_checksum/
  19. pw_chrono/
  20. pw_chrono_embos/
  21. pw_chrono_freertos/
  22. pw_chrono_stl/
  23. pw_chrono_threadx/
  24. pw_cli/
  25. pw_console/
  26. pw_containers/
  27. pw_cpu_exception/
  28. pw_cpu_exception_cortex_m/
  29. pw_crypto/
  30. pw_docgen/
  31. pw_doctor/
  32. pw_env_setup/
  33. pw_function/
  34. pw_fuzzer/
  35. pw_hdlc/
  36. pw_hex_dump/
  37. pw_i2c/
  38. pw_interrupt/
  39. pw_interrupt_cortex_m/
  40. pw_kvs/
  41. pw_libc/
  42. pw_log/
  43. pw_log_basic/
  44. pw_log_null/
  45. pw_log_rpc/
  46. pw_log_tokenized/
  47. pw_malloc/
  48. pw_malloc_freelist/
  49. pw_metric/
  50. pw_minimal_cpp_stdlib/
  51. pw_module/
  52. pw_multisink/
  53. pw_package/
  54. pw_persistent_ram/
  55. pw_polyfill/
  56. pw_preprocessor/
  57. pw_presubmit/
  58. pw_protobuf/
  59. pw_protobuf_compiler/
  60. pw_random/
  61. pw_result/
  62. pw_ring_buffer/
  63. pw_router/
  64. pw_rpc/
  65. pw_snapshot/
  66. pw_span/
  67. pw_status/
  68. pw_stm32cube_build/
  69. pw_stream/
  70. pw_string/
  71. pw_symbolizer/
  72. pw_sync/
  73. pw_sync_baremetal/
  74. pw_sync_embos/
  75. pw_sync_freertos/
  76. pw_sync_stl/
  77. pw_sync_threadx/
  78. pw_sys_io/
  79. pw_sys_io_arduino/
  80. pw_sys_io_baremetal_lm3s6965evb/
  81. pw_sys_io_baremetal_stm32f429/
  82. pw_sys_io_stdio/
  83. pw_target_runner/
  84. pw_thread/
  85. pw_thread_embos/
  86. pw_thread_freertos/
  87. pw_thread_stl/
  88. pw_thread_threadx/
  89. pw_tls_client/
  90. pw_tls_client_boringssl/
  91. pw_tls_client_mbedtls/
  92. pw_tokenizer/
  93. pw_tool/
  94. pw_toolchain/
  95. pw_trace/
  96. pw_trace_tokenized/
  97. pw_transfer/
  98. pw_unit_test/
  99. pw_varint/
  100. pw_watch/
  101. pw_web_ui/
  102. targets/
  103. third_party/
  104. .bazelignore
  105. .bazelrc
  106. .clang-format
  107. .eslintrc.json
  108. .gitattributes
  109. .gitignore
  110. .gn
  111. .prettierrc.js
  112. .pylintrc
  113. activate.bat
  114. AUTHORS
  115. bootstrap.bat
  116. bootstrap.sh
  117. BUILD.bazel
  118. BUILD.gn
  119. BUILDCONFIG.gn
  120. CMakeLists.txt
  121. LICENSE
  122. modules.gni
  123. OWNERS
  124. package.json
  125. PW_PLUGINS
  126. README.md
  127. tsconfig.json
  128. WORKSPACE
  129. yarn.lock
README.md

See our website: http://pigweed.dev