[Bug default/19173] Abidiff doesn't detect symbol size change in library.
m.ostapenko at partner dot samsung.com
sourceware-bugzilla@sourceware.org
Thu Jan 1 00:00:00 GMT 2015
https://sourceware.org/bugzilla/show_bug.cgi?id=19173
--- Comment #5 from Maxim Ostapenko <m.ostapenko at partner dot samsung.com> ---
Indeed, this might be a clang's debug info bug. Consider:
max@max:/tmp$ cat libfoo.c
#ifdef LONG
char buggy_symbol[10];
#else
char buggy_symbol[5];
#endif
max@max:/tmp$ gcc libfoo.c -shared -fpic -o libfoo.so -g
max@max:/tmp$ gcc libfoo.c -shared -fpic -o libfoo2.so -g -DLONG
max@max:/tmp$ ~/install/libabigail/bin/abidiff libfoo.so libfoo2.so
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
1 Changed variable:
[C]'char buggy_symbol[5]' was changed to 'char buggy_symbol[10]':
type of variable changed:
type name changed from 'char[5]' to 'char[10]'
array type size changed from 40 to 80 bits:
array type subrange 1 changed length from 5 to 10
This looks perfectly fine. But for clang the situation is different:
max@max:/tmp$ clang libfoo.c -shared -fpic -o libfoo.so -g
max@max:/tmp$ clang libfoo.c -shared -fpic -o libfoo2.so -g -DLONG
max@max:/tmp$ ~/install/libabigail/bin/abidiff libfoo.so libfoo2.so
So, should I close this as invalid because abidiff relies on a debug info here
and this is a clang's (?) debug info issue? Or maybe there is some other way to
detect this ABI breakage (e.g. by looking into symtab for symbol's size)?
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Libabigail
mailing list