pw_build: Use -ffile-prefix-map by default

By default, Clang and GCC use file paths directly as provided for debug
symbols and macros like __FILE__. This means that binaries produced on
different machines can be different and may include undesireable info
like usernames.

Clang and GCC provide the -ffile-prefix-map option to strip non-portable
prefixes from filenames. Add a config that applies -ffile-prefix-map to
Pigweed builds by default.

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

See our website: http://pigweed.dev