public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/26943] New: inexplicable type changing when running abidiff
@ 2020-11-25  1:24 woodard at redhat dot com
  2020-11-28 11:11 ` [Bug default/26943] " dodji at redhat dot com
  0 siblings, 1 reply; 2+ messages in thread
From: woodard at redhat dot com @ 2020-11-25  1:24 UTC (permalink / raw)
  To: libabigail

https://sourceware.org/bugzilla/show_bug.cgi?id=26943

            Bug ID: 26943
           Summary: inexplicable type changing when running abidiff
           Product: libabigail
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: woodard at redhat dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

With commit 2c0dd017 from dodji/PR26769

This one seems really unique. It appears that two types are inexplicably
changing in a way that is not clearly reported.

$ rpm -qf  /lib64/libQtCore.so.4.8.7 
qt-4.8.7-57.fc33.x86_64
$ abidw --abidiff /lib64/libQtCore.so.4.8.7 
$ echo $?
0
$ abidw /lib64/libQtCore.so.4.8.7 > libQtCore.so.4.8.7.abixml
$ abidiff --harmless libQtCore.so.4.8.7.abixml /lib64/libQtCore.so.4.8.7 
Functions changes summary: 0 Removed, 43 Changed, 0 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

43 functions with some indirect sub-type change:

  [C] 'method QTextCodec* QSettings::iniCodec() const' at qsettings.cpp:2997:1
has some indirect sub-type changes:
    return type changed:
      in pointed to type 'class QTextCodec' at qtextcodec.h:62:1:

  [C] 'method void QSettings::setIniCodec(QTextCodec*)' at qsettings.cpp:2966:1
has some indirect sub-type changes:
    parameter 1 of type 'QTextCodec*' changed:
      in pointed to type 'class QTextCodec' at qtextcodec.h:62:1:

  [C] 'method QTextCodec* QTextStream::codec() const' at qtextstream.cpp:3006:1
has some indirect sub-type changes:
    return type changed:
      in pointed to type 'class QTextCodec' at qtextcodec.h:62:1:

  [C] 'method void QTextStream::setCodec(QTextCodec*)' at
qtextstream.cpp:2968:1 has some indirect sub-type changes:
    parameter 1 of type 'QTextCodec*' changed:
      in pointed to type 'class QTextCodec' at qtextcodec.h:62:1:

  [C] 'method QXmlStreamWriter::QXmlStreamWriter(QByteArray*)' at
qxmlstream.h:423:1 has some indirect sub-type changes:
    implicit parameter 0 of type 'QXmlStreamWriter*' has sub-type changes:
      in pointed to type 'class QXmlStreamWriter' at qxmlstream.h:416:1:
        type size hasn't changed
        1 data member change:
          type of 'QScopedPointer<QXmlStreamWriterPrivate,
QScopedPointerDeleter<QXmlStreamWriterPrivate> > QXmlStreamWriter::d_ptr'
changed:
            type size hasn't changed
            1 data member change:
              type of 'QXmlStreamWriterPrivate*
QScopedPointer<QXmlStreamWriterPrivate,
QScopedPointerDeleter<QXmlStreamWriterPrivate> >::d' changed:
                in pointed to type 'class QXmlStreamWriterPrivate' at
qxmlstream.cpp:2960:1:
                  type size hasn't changed
                  2 data member changes:
                    type of 'QXmlStreamWriter* QXmlStreamWriterPrivate::q_ptr'
changed:
                      pointed to type 'class QXmlStreamWriter' changed, as
being reported
                    type of 'QTextCodec* QXmlStreamWriterPrivate::codec'
changed:
                      in pointed to type 'class QTextCodec' at
qtextcodec.h:62:1:

<snip redundant reporting>

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug default/26943] inexplicable type changing when running abidiff
  2020-11-25  1:24 [Bug default/26943] New: inexplicable type changing when running abidiff woodard at redhat dot com
@ 2020-11-28 11:11 ` dodji at redhat dot com
  0 siblings, 0 replies; 2+ messages in thread
From: dodji at redhat dot com @ 2020-11-28 11:11 UTC (permalink / raw)
  To: libabigail

https://sourceware.org/bugzilla/show_bug.cgi?id=26943

dodji at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from dodji at redhat dot com ---
Just some context on this issue.

There are actually two issues here.  One is the root issue and the second is a
corollary.

The first issue is that libabigail has subtle bugs that make it either
misrepresent some characteristics of some ABI artifact when it loads them from
DWARF or forget to serialize some of those characteristics into ABIXML.

So later when the internal representation (IR) coming from the DWARF is
compared to the IR coming from the ABIXML, spurious ABI changes are reported,
due to this first issue.

In general those misrepresented characteristics don't induce ABI changes that
are considered incompatible.  Those changes are usually harmless.

The second issue is that abidw --abidiff emits an error only if comparing the
IR coming from the binary against the IR coming from its ABIXML yields
*incompatible* ABI changes.  It won't emit an error for harmless changes.

The second issue is actually by design.  I did that because until now, I didn't
fix all those little (but real) bugs that constitute the first issue.  So, for
abidw --abidff to still be useful I made the choice of having it ignore
harmless changes.  It helped us catch several "bigger" problems like crashes
and actual incompatible ABI changes that were occurring while comparing the
binary against its ABIXML representation. 

So I sat down to chase those bugs to fix the first issue.  That led me to
changing abidw --abidiff to make it complain for harmless issues as well.

This led to patches the patch set
https://sourceware.org/pipermail/libabigail/2020q4/002920.html that was apply
to master recently.

With that patch set in master, this problem is now fixed.  Meaning the two
issues described above should now be solved.  Note that 'abipkgdiff
--self-check' has also been updated to complain even for harmless changes.

Thanks for reporting this problem!

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-11-28 11:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-25  1:24 [Bug default/26943] New: inexplicable type changing when running abidiff woodard at redhat dot com
2020-11-28 11:11 ` [Bug default/26943] " dodji at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).