Skip to content

Support efficient one-shot diffs and linked-binary reports - #402

Open
Fabus1184 wants to merge 3 commits into
encounter:mainfrom
ttdecomp:main
Open

Support efficient one-shot diffs and linked-binary reports#402
Fabus1184 wants to merge 3 commits into
encounter:mainfrom
ttdecomp:main

Conversation

@Fabus1184

@Fabus1184 Fabus1184 commented Sep 4, 2026

Copy link
Copy Markdown

Improve CLI workflows for large linked binaries:

  • Scope objdiff-cli diff to the requested symbol when one is provided, while preserving object-wide symbol and section indexes for relocations.
  • Allow objdiff-cli report generate to operate directly on --target / -1 and --base / -2 object files without requiring a project configuration.
  • Add a summary-only diff path for reports that avoids retaining detailed instruction and data edit rows.
  • Use block-based comparison for large linked data sections to avoid pathological diff performance.
  • Preserve linked section addresses, avoid combining linked sections as though they were relocatable, and correct generated section-symbol ranges.
  • Index symbol and ordering lookups to avoid repeated linear scans.

Together, these changes make single-symbol inspection and whole-binary report generation substantially faster and more reliable. They also prevent unrelated malformed data symbols from aborting a requested symbol diff.

Added coverage for:

  • single-symbol x86 diffs;
  • missing symbol mappings and common symbols;
  • summary diffs omitting detailed rows;
  • linked section addresses and section-symbol sizes;
  • preventing linked sections from being combined.

Use a symbol-specific core diff path when a positional symbol is provided. This avoids processing unrelated symbols and sections, preventing malformed data symbols from aborting output and substantially reducing work for large binaries while preserving object-wide indexes.
Preserve linked section addresses, avoid invalid section merging, and add a summary-only diff path for report generation. Support direct target/base report inputs while retaining project mode as the default.
@Fabus1184 Fabus1184 changed the title Scope one-shot diffs to the requested symbol Support efficient one-shot diffs and linked-binary reports Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant