Skip to content

Commit 6eda97e

Browse files
zackeesclaude
andauthored
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

0 commit comments

Comments
 (0)