* 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
* Show data literal values on instruction hover
Reimplements #108
* Show reloc diffs in func view when data's content differs
Reimplements #153
* Data diff view: Show relocs on hover and in context menu
This reimplements #154
Note that colorizing the text depending on the kind of diff has still not been reimplemented yet
* Fix up some comments
* Data view: Show data bytes with differing relocations as a diff
* Data view: Show differing relocations on hover
* Symbol list view: Adjust symbol/section match %s when relocations differ
* Improve data reloc diffing logic
* Don't make reloc diffs cause bytes to show as red or green
* Properly detect byte size of each relocation
* Data view: Add context menu for copying relocation target symbols
* Also show already-matching relocations on hover/right click
* Change font color for nonmatching relocs on hover
This allows users to "map" (or "link") symbols with different names so that they can be compared without having to update either the target or base objects. Symbol mappings are persisted in objdiff.json, so generators will need to ensure that they're preserved when updating. (Example: d1334bb79e)
Resolves#117
This re-implements the older algorithm
used for data and BSS section match
percentages. We perform both and
choose the highest match percent
between the two options.
Resolves#84, #85