[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug default/25128] New: abidiff is incorrectly comparing the size for declaration-only types with --leaf-changes-only
https://sourceware.org/bugzilla/show_bug.cgi?id=25128
Bug ID: 25128
Summary: abidiff is incorrectly comparing the size for
declaration-only types with --leaf-changes-only
Product: libabigail
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: default
Assignee: dodji at redhat dot com
Reporter: maennich at android dot com
CC: libabigail at sourceware dot org
Target Milestone: ---
Created attachment 12050
--> https://sourceware.org/bugzilla/attachment.cgi?id=12050&action=edit
reproducer
Consider base.xml and new.xml in the attachment.
They are from different code states and there is an actual difference when
comparing them:
$ abidiff base.xml new.xml
1 function with some indirect sub-type change:
[C]'function const cpumask* sched_trace_rd_span(root_domain*)' at
fair.c:10689:1 has some indirect sub-type changes:
parameter 1 of type 'root_domain*' has sub-type changes:
in pointed to type 'struct root_domain' at sched.h:740:1:
[...]
That behaviour is correct.
When run in --leaf-changes-only mode, the comparison gets confused by a
declaration-only type:
$ abidiff base.xml new.xml --leaf-changes-only
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
(1 filtered out)
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
'struct root_domain at sched.h:732:1' changed:
type size changed from 14592 to 14720 (in bits)
there are data member changes:
type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at
sched.h:722:1
type size changed from 64 to 192 (in bits)
, size changed from 64 to 192 (in bits) (by +128 bits)
'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits)
(by +128 bits)
'struct xfrm_policy' changed:
type size changed from 0 to 6336 (in bits)
The struct 'xfrm_policy' appears both xml representations in a slight different
way:
base.xml:
[...]
<abi-instr version='1.0' address-size='64' path='kernel/audit.c'
language='LANG_C89'>
[...]
<class-decl name='xfrm_policy' is-struct='yes' visibility='default'
is-declaration-only='yes' id='type-id-3146'/>
[...]
<abi-instr version='1.0' address-size='64' path='net/core/skbuff.c'
language='LANG_C89'>
[...]
<class-decl name='xfrm_policy' size-in-bits='6336' is-struct='yes'
visibility='default' filepath='include/net/xfrm.h' line='499' column='1'
id='type-id-12015'>
new.xml:
[...]
<abi-instr version='1.0' address-size='64' path='common/kernel/audit.c'
language='LANG_C89'>
[...]
<class-decl name='xfrm_policy' size-in-bits='6336' is-struct='yes'
visibility='default' is-declaration-only='yes' id='type-id-3147'/>
[...]
--
You are receiving this mail because:
You are on the CC list for the bug.