Commit 6eda97e
feat(symbols): ingest toolchain paths from build_info.json (#436)
* feat(symbols): ingest toolchain paths from build_info.json
Extends `BuildInfo` with `nm_path` / `cppfilt_path` / `readelf_path` /
`objdump_path` and mirrors them onto a PIO-shape `aliases` block so
existing PlatformIO consumers (FastLED `ci/util/symbol_analysis.py`,
`ci/inspect_binary.py`) read fbuild-built artifacts drop-in. Paths are
derived centrally in `BuildInfo::new` from `size_path` using the GCC
cross-tool naming convention — no orchestrator surgery needed.
Teaches `fbuild symbols` to auto-locate `build_info.json` by walking up
from the ELF directory; adds a `--build-info <path>` override. The
common case becomes flag-less:
fbuild symbols .fbuild/build/uno/firmware.elf
fbuild symbols .pio/build/esp32s3/firmware.elf
Adds `docs/symbols.md` walking through the resolution order, the
`aliases` schema, and PIO/fbuild interop.
Closes #428.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* style(symbol_analysis): apply rustfmt deltas surfaced by CI
`cargo fmt --all` flagged a stray blank line in `mod.rs` and a
short-line wrap in `tests.rs`. Both were left over from when the
file was split out — they pass locally only because rustfmt
default formatting matches them when they already exist. CI runs
`cargo fmt -- --check`, which doesn't.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 3d5880f commit 6eda97e
6 files changed
Lines changed: 742 additions & 18 deletions
File tree
- crates
- fbuild-build/src
- fbuild-cli/src/cli
- docs
0 commit comments