Your message dated Tue, 19 Jan 2016 17:34:04 +0000
with message-id <e1alaao-0000jt...@franck.debian.org>
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 ow...@bugs.debian.org
immediately.)


-- 
808207: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808207
Debian Bug Tracking System
Contact ow...@bugs.debian.org 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
have.

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):

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


Mike



1. Example of how this can happen:

    $ cat > test.c <<EOF
    enum A {
      FOO, 
    #ifdef WITH_BAR
      BAR, 
    #endif
    };
    void foo() {
      static int a = 0;
    } 
    EOF
    $ 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
attached.

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

Debian distribution maintenance software
pp.
Jérémy Bobbio <lu...@debian.org> (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 ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
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 
<reproducible-builds@lists.alioth.debian.org>
Changed-By: Jérémy Bobbio <lu...@debian.org>
Description:
 debbindiff - transitional package
 diffoscope - in-depth comparison of files, archives, and directories
Closes: 808197 808207 808267 810825
Changes:
 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)
Checksums-Sha1:
 f9c4524af565fe2b6e6df3cc99a34ce13ded6a88 2000 diffoscope_46.dsc
 08076c564c4f4e626e805c5704c9dc2f071b6177 238900 diffoscope_46.tar.xz
 bcc1fb6cf444f0335c19cf04b67f8b31be00c3e1 13292 debbindiff_46_all.deb
 5532b53b0b4d650265c97ac558257e121854205c 53134 diffoscope_46_all.deb
Checksums-Sha256:
 0fdc85b478fdefa0f185f48791fdc9ad2047d4c706b9549097ba15db1266772b 2000 
diffoscope_46.dsc
 3992c4e2c77ec1f3039613c2659c4598c4a71a03558649f079a1aae2cb129b12 238900 
diffoscope_46.tar.xz
 7daa08e68ade29e0d4365a492176d36e33145bb19d4cf6e4b2eb22a911175395 13292 
debbindiff_46_all.deb
 e62479d3443e560ba768727ee897625b14b59f777edcff2165c15e9e4c84fe2a 53134 
diffoscope_46_all.deb
Files:
 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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJWnnA9AAoJEEAsIlA9Nuk2qlsP/0aFqxYPx6Y3HHOeiqsROBlm
c0FQRcai0aEIHsEmhZbIhBhdqhAWZzoWOhcmdXHFcd6iUV+u5woSYM3Aa/+MfFo9
eoVj1Esm3q9lFgeY/LoXUVDgKsUFN6/bPxpZfhN3nrY1wGwSMEnd9JA93dzPC9Dh
2yUjzivSELxXvBmouPYjWQC1w3DlXEMHgYMNd/zF5K77qwI/4tRVfhOemIsZNdva
0km/+KlYd/A7RwlpSzmpni1E/6/57e8BEARltnaJ0nnzUUxcBBhsqMNbonliJ3yC
DFJ9fkCZ30Q2kkX+0nwjquKDFIu1SYVXvTCO3zghskk6eATbE5cP2Kg793as6VQm
c/nJUU5FN+9e0wqSJGDitysq/QGWFK7md4oJMIOrcHF80qO9UtAMgjNiR4yPDBEg
pK8v8O3pLctrYeFBgAl+08iLvMXD2UNT1B/uCbwB72mbMgYDOnlcBd2tPLpl4Dug
qM4ndeDrlyrELIWh/Q+1DlI/3Di5ern//i7kREKaCrPPFeSzZQ5FXyRGXWylHav4
gSeXqRzqsfPXUtHdf6cSp4BwTlYrZtBZtw1XavppH4Lg3shUvkS7B8JLYilsp+JO
eDWVefFfnEWm8TskD2t5yqABLuDwjihpYTIg8/FWvn6VPcp+xnnZfRmavgU81wEZ
aw7YsmIICnBO6KW4BtOk
=pOaF
-----END PGP SIGNATURE-----

--- End Message ---
_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to