public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names
@ 2021-08-30  7:20 lukas at wunner dot de
  2021-08-30  7:24 ` [Bug default/28289] " lukas at wunner dot de
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: lukas at wunner dot de @ 2021-08-30  7:20 UTC (permalink / raw)
  To: libabigail

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

            Bug ID: 28289
           Summary: [1.7 -> 1.8 regression] false positives involving enum
                    synthetic type names
           Product: libabigail
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: lukas at wunner dot de
                CC: gprocida at google dot com, libabigail at sourceware dot org
  Target Milestone: ---

Created attachment 13633
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13633&action=edit
full abidiff output

Invoking abidiff v1.8 (or newer) on libzfs results in 74 reported changes if
the .abi file was generated with an abidiff version < 1.8.

The changes are not reported if abidiff v1.7 or an older version is used.

git bisect identified this as the first bad commit:

    commit 8a0825e319c3c3430706ca4f7f330259dfc85563
    Author: Giuliano Procida <gprocida@google.com>
    Date:   Thu Oct 29 12:20:59 2020 +0000

    Improve enum synthetic type names

The reported changes seem nonsensical as there are "no data member changes":

  [C] 'function prop_changelist_t* changelist_gather(zfs_handle_t*, zfs_prop_t,
int, int)' at libzfs_changelist.c:624:1 has some indirect sub-type changes:
    parameter 1 of type 'zfs_handle_t*' has sub-type changes:
      in pointed to type 'typedef zfs_handle_t' at libzfs.h:195:1:
        underlying type 'struct zfs_handle' at libzfs_impl.h:77:1 changed:
          type size hasn't changed
          1 data member changes (5 filtered):
            type of 'libzfs_handle_t* zfs_handle::zfs_hdl' changed:
              in pointed to type 'typedef libzfs_handle_t' at libzfs.h:197:1:
                underlying type 'struct libzfs_handle' at libzfs_impl.h:48:1
changed:
                  type size hasn't changed
                  no data member changes (4 filtered);

The issue is tracked here:
https://github.com/openzfs/zfs/issues/12360

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

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

* [Bug default/28289] [1.7 -> 1.8 regression] false positives involving enum synthetic type names
  2021-08-30  7:20 [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names lukas at wunner dot de
@ 2021-08-30  7:24 ` lukas at wunner dot de
  2021-08-30  7:28 ` lukas at wunner dot de
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: lukas at wunner dot de @ 2021-08-30  7:24 UTC (permalink / raw)
  To: libabigail

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

--- Comment #1 from lukas at wunner dot de ---
Created attachment 13634
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13634&action=edit
abi file created with v1.7

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

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

* [Bug default/28289] [1.7 -> 1.8 regression] false positives involving enum synthetic type names
  2021-08-30  7:20 [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names lukas at wunner dot de
  2021-08-30  7:24 ` [Bug default/28289] " lukas at wunner dot de
@ 2021-08-30  7:28 ` lukas at wunner dot de
  2021-08-30  7:28 ` lukas at wunner dot de
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: lukas at wunner dot de @ 2021-08-30  7:28 UTC (permalink / raw)
  To: libabigail

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

--- Comment #2 from lukas at wunner dot de ---
Created attachment 13635
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13635&action=edit
libzfs shared object (x86-64)

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

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

* [Bug default/28289] [1.7 -> 1.8 regression] false positives involving enum synthetic type names
  2021-08-30  7:20 [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names lukas at wunner dot de
  2021-08-30  7:24 ` [Bug default/28289] " lukas at wunner dot de
  2021-08-30  7:28 ` lukas at wunner dot de
@ 2021-08-30  7:28 ` lukas at wunner dot de
  2021-08-30  7:29 ` lukas at wunner dot de
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: lukas at wunner dot de @ 2021-08-30  7:28 UTC (permalink / raw)
  To: libabigail

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

lukas at wunner dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #13634|abi file created with v1.7  |libzfs abi file created
        description|                            |with v1.7

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

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

* [Bug default/28289] [1.7 -> 1.8 regression] false positives involving enum synthetic type names
  2021-08-30  7:20 [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names lukas at wunner dot de
                   ` (2 preceding siblings ...)
  2021-08-30  7:28 ` lukas at wunner dot de
@ 2021-08-30  7:29 ` lukas at wunner dot de
  2021-08-30  7:43 ` gprocida at google dot com
  2021-09-05 13:48 ` lukas at wunner dot de
  5 siblings, 0 replies; 7+ messages in thread
From: lukas at wunner dot de @ 2021-08-30  7:29 UTC (permalink / raw)
  To: libabigail

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

--- Comment #3 from lukas at wunner dot de ---
Created attachment 13636
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13636&action=edit
libzfs suppressions

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

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

* [Bug default/28289] [1.7 -> 1.8 regression] false positives involving enum synthetic type names
  2021-08-30  7:20 [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names lukas at wunner dot de
                   ` (3 preceding siblings ...)
  2021-08-30  7:29 ` lukas at wunner dot de
@ 2021-08-30  7:43 ` gprocida at google dot com
  2021-09-05 13:48 ` lukas at wunner dot de
  5 siblings, 0 replies; 7+ messages in thread
From: gprocida at google dot com @ 2021-08-30  7:43 UTC (permalink / raw)
  To: libabigail

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

--- Comment #4 from gprocida at google dot com ---
The problem that the commit mentioned addressed could have been addressed in at
least one other way (by changing the hashing used for enum types and reordering
type elements keying by hash).

The treatment of underlying enum type by DWARF and libabigail is a bit uneven.
I don't think there's any requirement for DWARF to give a name (such as "int")
to the underlying type. The most important aspect is size. However, in C++, the
exact type can be user-specified and can impact overloading resolution /
implicit conversions to some degree (say bool vs int).

The commit, like other changes over the last year, resulted in changes to the
ABI representation for the same input. As you point out, the name change
triggers abidiff. In post-1.8 development the (first, partial) bitfield offset
fix warranted an XML version bump, making abidiff refuse to compare mismatched
XML files, but no such thing was done for the 1.7->1.8 changes.

In theory, abidiff could be tweaked to ignore underlying type name when it
comes to C enums; in practice this may not be straightforward. I'm not actually
sure what the treatment of C++ enums is.

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

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

* [Bug default/28289] [1.7 -> 1.8 regression] false positives involving enum synthetic type names
  2021-08-30  7:20 [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names lukas at wunner dot de
                   ` (4 preceding siblings ...)
  2021-08-30  7:43 ` gprocida at google dot com
@ 2021-09-05 13:48 ` lukas at wunner dot de
  5 siblings, 0 replies; 7+ messages in thread
From: lukas at wunner dot de @ 2021-09-05 13:48 UTC (permalink / raw)
  To: libabigail

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

lukas at wunner dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |WONTFIX
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #5 from lukas at wunner dot de ---
In reply to gprocida from comment #4)
> The commit, like other changes over the last year, resulted in changes to
> the ABI representation for the same input. As you point out, the name change
> triggers abidiff. In post-1.8 development the (first, partial) bitfield
> offset fix warranted an XML version bump, making abidiff refuse to compare
> mismatched XML files, but no such thing was done for the 1.7->1.8 changes.

Thanks for the explanation Giuliano.

The OpenZFS project now works around the issue by forcing version 1.8 or newer:
https://github.com/openzfs/zfs/commit/a9655fc2bd1f

And the project's *.abi files have been regenerated with v1.8:
https://github.com/openzfs/zfs/commit/6ea058da16cc

Hopefully in the future there won't be any silent changes in the XML file
format which trigger abidiff.

Closing this. Thanks again.

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

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

end of thread, other threads:[~2021-09-05 13:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-30  7:20 [Bug default/28289] New: [1.7 -> 1.8 regression] false positives involving enum synthetic type names lukas at wunner dot de
2021-08-30  7:24 ` [Bug default/28289] " lukas at wunner dot de
2021-08-30  7:28 ` lukas at wunner dot de
2021-08-30  7:28 ` lukas at wunner dot de
2021-08-30  7:29 ` lukas at wunner dot de
2021-08-30  7:43 ` gprocida at google dot com
2021-09-05 13:48 ` lukas at wunner dot de

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