[Bug default/28319] abidw - regression in treatment of anonymous enums in structs
gprocida at google dot com
sourceware-bugzilla@sourceware.org
Tue Jan 11 11:30:48 GMT 2022
https://sourceware.org/bugzilla/show_bug.cgi?id=28319
--- Comment #4 from gprocida at google dot com ---
Hi Dodji.
Following up on the last few bug comments: "old" and "new" refer to abidw
before and after commit 1cfbff1b3037d1049bdff7e86de27c3a86af23b3.
Looking at that commit and the new code in more detail, the binary-only enum
comparison behaviour was added to address issues with a GIMP library ABI and
makes abidw ignore enumerator names when canonicalising types.
For Android and especially the kernel, we are extremely unlikely to have a
use-case where binary-only enum comparison is useful, because we are very
unlikely to link code against an old .a.
On the other hand, the new behaviour is causing the regression noted in this
bug.
While there may be a more nuanced resolution possible, the best way forward for
us is seems to be to put the new behaviour under flag control.
I'll start work on this now. Do you have any preference as to whether
binary-only enum comparison should be the default and what the flag should be
called?
>From the perspective of adding the binary-only comparison feature, only the
GIMP test is improved, various other tests exhibit worse behaviour. Details
follow.
Regards.
runtestannotate and runtestreaddwarf
test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
2 different (member type) enums are conflated
1 of them disappears from its containing class
it wasn't referred to elsewhere in the ABI
test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi
enum tcmalloc::ThreadCache::__anonymous_enum__ disappears
it wasn't referred to elsewhere in ABI
test-annotate/test-anonymous-members-0.o.abi
3 anonymous enums (all used) are conflated
2 of them vanish from their containing type
test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi
1 anonymous enum disappears from its containing type
it wasn't referred to elsewhere in ABI
test-abidiff/test-enum0-report.txt
This was an enum test where the name of an enumerator changed. The report no
longer shows any diff.
runtestaltdwarf
the GIMP test changes a lot, as expected
runtestdiffdwarf
test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
The report no longer includes some enumerator name changes.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Libabigail
mailing list