• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
12.1 version
2===========
3
4This occurred in libabigail 2.1.  The IR doesn't contain no-op
5qualified types anymore.  These were the ancient way to represent
6qualified type that were edited by libabigail to avoid spurious
7diagnostics. E.g, const references or const void type.  In those
8cases, we were replacing these by qualified types that were no-ops.
9Those no-ops qualified types further needed to be stripped off in the
10diff IR to avoid emitting spurious changes.  It turned out stripping
11out those no-op qualified types was causing some difficulties in the
12algorithms that propagate type diff node categorization.
13
14For instance, variable diff type node would have the categorization of
15its diff->type_diff() be different from what we could see from the
16change observed between its diff->first_subject()->get_type() and
17diff->second_subject()->get_type().  This is because diff->type_diff()
18strips the no-op qualified types to create a new diff IR node, whereas
19looking at the difference between diff->first_subject->get_type() and
20diff->second_subject()->get_type() gives a different perspective.
21
22So looking at the "changes" carried by 'diff' could yield a result
23suggesting that there was a change to be diagnosed, carried by the
24difference between diff->first_subject()->get_type() and
25diff->second_subject()->get_type() -- a difference between two no-ops
26qualified types -- whereas actually looking at diff->type_diff() (that
27should be equivalent) yields a different information because it's
28stripped off of the no-op qualified type.
29
30Just removing the no-op qualified types removed all those issues
31altogether.  So in concrete terms, when we see a const reference, it's
32replaced by a reference (because a reference is always const) and
33when we see a const void, it's replaced by void.  As simple as that.
34
35But then the emitted ABIXML won't carry any no-op qualified type
36anymore. Older versions of ABIXML might still carry those, and so
37abidiff-ing those against their original binary might yield some
38spurious diagnostics.  Hence the minor version bump.
39
40relevant commit:
41----------------
42commit 8a4f72005bc96fecf63414784cf94857eddbd124
43Author: Dodji Seketeli <dodji@redhat.com>
44Date:   Thu Nov 4 10:59:32 2021 +0100
45
46    Bug 28450 - Fix cloned member function handling in DWARF
472.0 version
48===========
49
50This occured in libabigail 2.0.  The interpretation of
51DW_AT_bit_offset (DWARF 5) changed so the value of the
52'layout-offset-in-bits' property of the 'data-member' element might
53now have changed in an incompatible way.
54
55relevant commit:
56----------------
57commit 23046152e0843bc2f141e37dcce047305c3f4379
58Author: Dodji Seketeli <dodji@redhat.com>
59Date:   Thu Oct 22 16:04:08 2020 +0200
60
61    Bump ABIXML format version to 2.0
62
63
641.0 version
65===========
66
67This was the initial version of abixml.
68