Check relocation addends when diffing functions#158
Merged
encounter merged 2 commits intoencounter:mainfrom Feb 10, 2025
Merged
Check relocation addends when diffing functions#158encounter merged 2 commits intoencounter:mainfrom
encounter merged 2 commits intoencounter:mainfrom
Conversation
Owner
|
I somehow did not see this PR until now. Looks good, thanks! |
LagoLunatic
added a commit
to LagoLunatic/objdiff
that referenced
this pull request
Mar 5, 2025
…addend This is a regression that was introduced by encounter#158 diffing addends in addition to symbol names. But it's not really a bug in that PR, rather it seems like I simply never added the offset into the addend when creating a fake pool relocation for an extern symbol. So this commit fixes that root issue instead.
encounter
pushed a commit
that referenced
this pull request
Mar 5, 2025
* PPC: Calculate pooled relocations Reimplements #140 The relocations are now generated when the object is first read in `parse`, right after the real relocations are read. `resolve_relocation` was changed to take `obj.symbols` instead of `obj` as an argument, because `obj` itself doesn't exist yet at the time the relocations are being read. * Improve readability of PPC pool relocs code * Fix regression causing extern pool relocs to be ignored * Fix showing incorrect diff when diffing weak stripped symbol with an addend This is a regression that was introduced by #158 diffing addends in addition to symbol names. But it's not really a bug in that PR, rather it seems like I simply never added the offset into the addend when creating a fake pool relocation for an extern symbol. So this commit fixes that root issue instead. * Add PPC "Calculate pooled data references" option * Fix objdiff-wasm compilation errors * Update PPC test snapshots
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is probably pretty rare and not that important, but I ran into a case where the (fake) relocation shown by objdiff had the correct symbol name but wrong addend, and objdiff wasn't highlighting it as a diff like it should be, so I implemented that. This also makes the func reloc diffing logic more similar to the data reloc diffing logic (which already checks addends).
Before:


After:
Also the second commit is to make the addend be visually colored along with the symbol:
