[diffoscope] 04/09: Filter symbols for IP-relative ops from ELF disassembled output

Jérémy Bobbio lunar at moszumanska.debian.org
Tue Jan 19 18:22:30 CET 2016


This is an automated email from the git hooks/post-receive script.

lunar pushed a commit to branch master
in repository diffoscope.

commit 998c09436c58b53e2e255e24b292fdd700faef89
Author: Jérémy Bobbio <lunar at debian.org>
Date:   Tue Jan 19 16:29:52 2016 +0100

    Filter symbols for IP-relative ops from ELF disassembled output
    
    `objdump --disassemble` displays symbols+offsets for addresses
    it derives from IP-relative addressing. If the offsets are different,
    that results in showing a difference even if the actual code is the same.
    As we care about actual differences, let's filter them from the output.
    
    Thanks Mike Hommey for the suggestion and the test case.
    
    Closes: #808207
---
 diffoscope/comparators/elf.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/diffoscope/comparators/elf.py b/diffoscope/comparators/elf.py
index 0721ff8..c3decea 100644
--- a/diffoscope/comparators/elf.py
+++ b/diffoscope/comparators/elf.py
@@ -165,6 +165,8 @@ class ObjdumpSection(Command):
         return line
 
 class ObjdumpDisassembleSection(ObjdumpSection):
+    RE_SYMBOL_COMMENT = re.compile(rb'^( [0-9a-f]+:[^#]+)# [0-9a-f]+ <[^>]+>$')
+
     def objdump_options(self):
         # With '--line-numbers' we get the source filename and line within the
         # disassembled instructions.
@@ -172,6 +174,11 @@ class ObjdumpDisassembleSection(ObjdumpSection):
         # stripped symbols file specified in the .gnu_debuglink section
         return ['--line-numbers', '--disassemble']
 
+    def filter(self, line):
+        line = super().filter(line)
+        return ObjdumpDisassembleSection.RE_SYMBOL_COMMENT.sub(r'\1', line)
+
+
 READELF_COMMANDS = [ReadelfFileHeader,
                     ReadelfProgramHeader,
                     ReadelfSections,

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git


More information about the diffoscope mailing list