Your message dated Tue, 19 Jan 2016 17:34:04 +0000
with message-id <>
and subject line Bug#808207: fixed in diffoscope 46
has caused the Debian Bug report #808207,
regarding diffoscope: Filter objdump --disassemble output before diffing it
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact

Debian Bug Tracking System
Contact with problems
--- Begin Message ---
Source: diffoscope
Version: 43
Severity: wishlist

When comparing large ELF binaries, some minor differences can end up hurting
the visibility of more important differences.

Specifically, objdump --disassemble displays symbols+offsets for addresses
it derives from IP-relative addressing, like the following:

   9d2be2:     48 8d 05 42 65 24 02    lea    0x2246542(%rip),%rax        # 
2c1912b <_fini@@xul45a1+0x1d803>

In the particular case I'm looking at, though, some function ends up pushing
the rest of the .text section, so that the _fini symbol (and many others,
actually) move.

So I end up with a *lot* of differences like:

<   9d2be2:     48 8d 05 42 65 24 02    lea    0x2246542(%rip),%rax        # 
2c1912b <_fini@@xul45a1+0x1d803>
>   9d2be2:     48 8d 05 42 65 24 02    lea    0x2246542(%rip),%rax        # 
> 2c1912b <_fini@@xul45a1+0x1d7e3>
(note: this is a diff I got manually, because it's easier to visualize than a
copy/paste of the HTML output I got from diffoscope)

The code is the same, the address is the same, but the pseudo-symbol doesn't
match and it actually doesn't matter because that actually points to some place
in .rodata, and the .rodata hasn't moved, only _fini and some earlier symbols

In another case, the symbol between angle brackets is an actual symbol (on
non-stripped binaries) but the symbol name is different because GCC decided
to use a different suffix[1]. For example:

<   9d2f35:     48 8d 05 d1 5b 33 02    lea    0x2335bd1(%rip),%rax        # 
2d08b0d <__FUNCTION__.10544+0x29d>
>   9d2f35:     48 8d 05 d1 5b 33 02    lea    0x2335bd1(%rip),%rax        # 
> 2d08b0d <__FUNCTION__.10547+0x29d>

The difference might seem interesting to note, but in fact it's not, because it
will already appear in the `readelf --all` diff:

<  17956: 0000000002d08870    21 OBJECT  LOCAL  DEFAULT   16 __FUNCTION__.10544
>  17956: 0000000002d08870    21 OBJECT  LOCAL  DEFAULT   16 __FUNCTION__.10547

Anyways, those symbols between angle brackets are just adding noise that would
be better left out. I'm not sure, though, that there is an option to objdump
that allows to make it not display those symbols (and a quick glance at the
binutils source suggests there isn't). I can only suggest sending the output
of objdump through sed :-/

Something like (awful):

def cmdline(self):
    return ['sh', '-c', 'objdump --disassemble --full-contents "%s" | sed 
"s/<.*>//"' % self.path]


1. Example of how this can happen:

    $ cat > test.c <<EOF
    enum A {
    #ifdef WITH_BAR
    void foo() {
      static int a = 0;
    $ gcc -o - -S test.c | grep local
           .local  a.1834
    $ gcc -DWITH_BAR -o - -S test.c | grep local
           .local  a.1835

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.2.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

--- End Message ---
--- Begin Message ---
Source: diffoscope
Source-Version: 46

We believe that the bug you reported is fixed in the latest version of
diffoscope, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
Jérémy Bobbio <> (supplier of updated diffoscope package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing

Hash: SHA256

Format: 1.8
Date: Tue, 19 Jan 2016 16:46:47 +0100
Source: diffoscope
Binary: diffoscope debbindiff
Architecture: source all
Version: 46
Distribution: unstable
Urgency: low
Maintainer: Reproducible builds folks 
Changed-By: Jérémy Bobbio <>
 debbindiff - transitional package
 diffoscope - in-depth comparison of files, archives, and directories
Closes: 808197 808207 808267 810825
 diffoscope (46) unstable; urgency=low
   [ Dhole ]
   * Improve ELF comparisons by performing comparisons section by section.
     (Closes: #808197)
   [ Jérémy Bobbio ]
   * Further split readelf output when examining ELF files.
   * Skip dumping ELF sections that are already covered by previous readelf
     calls to avoid redundant output. Thanks Mike Hommey for the report.
     (Closes: #808267)
   * Fix ELF comparisons against non-existing files.
   * Filter symbols for IP-relative ops from ELF disassembled output as
     they will create differences that don't really exist. Thanks Mike Hommey
     for the report and test cases. (Closes: #808207)
   * Add forgotten requirements for tests with non-existing files.
   * Improve tests for comparisons against non-existing files.
   * Respect order of containers when performing comparisons. It makes the
     output somewhat nicer, especially for things that are expected to be in a
     certain order, like ELF sections.
   * Fix comparisons of directory with broken symlinks. Thanks Tuomas Tynkkynen
     for reporting the issue. (Closes: #810825)
 f9c4524af565fe2b6e6df3cc99a34ce13ded6a88 2000 diffoscope_46.dsc
 08076c564c4f4e626e805c5704c9dc2f071b6177 238900 diffoscope_46.tar.xz
 bcc1fb6cf444f0335c19cf04b67f8b31be00c3e1 13292 debbindiff_46_all.deb
 5532b53b0b4d650265c97ac558257e121854205c 53134 diffoscope_46_all.deb
 0fdc85b478fdefa0f185f48791fdc9ad2047d4c706b9549097ba15db1266772b 2000 
 3992c4e2c77ec1f3039613c2659c4598c4a71a03558649f079a1aae2cb129b12 238900 
 7daa08e68ade29e0d4365a492176d36e33145bb19d4cf6e4b2eb22a911175395 13292 
 e62479d3443e560ba768727ee897625b14b59f777edcff2165c15e9e4c84fe2a 53134 
 3621eda1fc180429caa3b7ec271639ca 2000 devel optional diffoscope_46.dsc
 8a349f2006131b0618a9f6cfeaacce1b 238900 devel optional diffoscope_46.tar.xz
 daeba992da49c50fd0370ee1d5e8e6e7 13292 oldlibs extra debbindiff_46_all.deb
 9ed5cecbdd4edcf49a0a42d63c0e4b54 53134 devel optional diffoscope_46_all.deb

Version: GnuPG v1


--- End Message ---
Reproducible-builds mailing list

Reply via email to