[Bug default/26646] unexpected declaration-only types

gprocida at google dot com sourceware-bugzilla@sourceware.org
Thu Feb 24 12:16:26 GMT 2022


https://sourceware.org/bugzilla/show_bug.cgi?id=26646

--- Comment #24 from gprocida at google dot com ---
Hi.

I ran some quick tests - the libabigail test suite and on the two kernels.

Good

* vmlinux3 and vmlinux4 get ABIs which are the same, including declaration-only
/ fully-defined status
* both have more fully-defined types than the previous iteration (around 9)
* a Linux test case looks better (some declaration-only duplicates vanish)

Not so good

* struct can_dev_rcv_lists is now declaration-only (w.r.t. to the original
baseline ABIs)
* struct prefix_info too (w.r.t. an intermediate code version)
* there is a test case regression (nmap)

I'll do some more digging, but probably nothing directly with these two types
right now.

Someone here pointed out to me that Clang and GCC have "type homing" logic to
reduce the definitions that get emitted into DWARF to what's needed (leaving
some types declaration-only). The relevant flags (to disable this) are
-fstandalone-debug and -femit-class-debug-always, respectively.

You might decide that if either of these flags makes a difference to libabigail
output then there's a bug somewhere in the compiler, linker or libabigail. Or
it might be the case that disabling the logic exposes the types behind opaque
pointers in a way which is unwanted.

In any case, I'm going to see what sort of impact -fstandalone-debug has on
ABIs and kernel build time and size.

Regards,
Giuliano.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Libabigail mailing list