[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug default/23705] New: abidiff issue with harfbuzz
https://sourceware.org/bugzilla/show_bug.cgi?id=23705
Bug ID: 23705
Summary: abidiff issue with harfbuzz
Product: libabigail
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: default
Assignee: dodji at redhat dot com
Reporter: bochecha at daitauha dot fr
CC: libabigail at sourceware dot org
Target Milestone: ---
Created attachment 11271
--> https://sourceware.org/bugzilla/attachment.cgi?id=11271&action=edit
A tarball containing the libraries, debuginfos and headers, to reproduce the
commands in the bug description
I **think** I found one more issue where libabigail thinks we broke ABI but we
didn't.
$ abidiff --no-added-syms --drop-private-types --headers-dir1
harfbuzz-1.8.4/usr/include --headers-dir2 harfbuzz-1.9.0/usr/include
--debug-info-dir1 harfbuzz-1.8.4/usr/lib/debug --debug-info-dir2
harfbuzz-1.9.0/usr/lib/debug
harfbuzz-1.8.4/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10800.4
harfbuzz-1.9.0/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10900.0
Functions changes summary: 0 Removed, 1 Changed, 0 Added (11 filtered out)
functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
1 function with some indirect sub-type change:
[C]'function hb_blob_t* hb_glib_blob_create(GBytes*)' at hb-glib.cc:424:1 has
some indirect sub-type changes:
return type changed:
entity changed from 'hb_blob_t*' to 'void'
type size changed from 64 to 0 (in bits)
Neither the code (hb-glib.cc) nor the header (hb-glib.h) changed anything on
this function between harfbuzz 1.8.4 and 1.9.0.
I tried looking at abidw:
$ abidw --debug-info-dir harfbuzz-1.8.4/usr/lib/debug --headers-dir
harfbuzz-1.8.4/usr/include
harfbuzz-1.8.4/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10800.4
That tells me the following about this function:
<function-decl name='hb_glib_blob_create'
mangled-name='hb_glib_blob_create' filepath='../../src/hb-glib.cc' line='426'
column='1' visibility='default' binding='global' size-in-bits='64'
elf-symbol-id='hb_glib_blob_create'>
<parameter type-id='type-id-2761' name='gbytes'
filepath='../../src/hb-glib.cc' line='426' column='1'/>
<return type-id='type-id-77'/>
</function-decl>
The return type is type-id-77 which is:
<pointer-type-def type-id='type-id-74' size-in-bits='64' id='type-id-77'/>
If I get this right, it's a pointer to type-id-74, which is:
<class-decl name='hb_blob_t' size-in-bits='448' is-struct='yes'
visibility='default' filepath='../../src/hb-blob-private.hh' line='39'
column='1' id='type-id-74'>
Alright, so abidw seems to confirm that in 1.8.4, hb_glib_blob_create returns a
pointer to hb_blob_t.
Doing the same thing with 1.9.0:
$ abidw --debug-info-dir harfbuzz-1.9.0/usr/lib/debug --headers-dir
harfbuzz-1.9.0/usr/include
harfbuzz-1.9.0/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10900.0
That tells me the following about this function:
<function-decl name='hb_glib_blob_create'
mangled-name='hb_glib_blob_create' filepath='../../src/hb-glib.cc' line='424'
column='1' visibility='default' binding='global' size-in-bits='64'
elf-symbol-id='hb_glib_blob_create'>
<parameter type-id='type-id-3953' name='gbytes'
filepath='../../src/hb-glib.cc' line='424' column='1'/>
<return type-id='type-id-42'/>
</function-decl>
The return type is type-id-42 which is:
<pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-42'/>
If I get this right, it's a pointer to type-id-38, which is:
<class-decl name='hb_blob_t' size-in-bits='448' is-struct='yes'
visibility='default' filepath='../../src/hb-blob.hh' line='39' column='1'
id='type-id-38'>
Alright, so abidw seems to confirm that in 1.9.0, hb_glib_blob_create returns a
pointer to hb_blob_t.
So, why would abidiff think the function returns void in 1.9.0?
--
You are receiving this mail because:
You are on the CC list for the bug.