public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: "dodji at redhat dot com" <sourceware-bugzilla@sourceware.org>
To: libabigail@sourceware.org
Subject: [Bug default/26646] unexpectedly declaration-only types
Date: Mon, 24 Jan 2022 15:07:07 +0000	[thread overview]
Message-ID: <bug-26646-9487-2A6plAzCu2@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-26646-9487@http.sourceware.org/bugzilla/>

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

--- Comment #10 from dodji at redhat dot com ---
Hello,

Here is my analysis on what is going on.

Let's look at the DWARF output and the abixml of the vmlinux3 binary.

From the abixml, we see that the struct ip_mc_list is used from the struct
in_device type.  For instance, the ip_mc_list::mc_list data member is of type
"pointer to decl-only struct ip_mc_list".

Moreover, the only use of struct ip_mc_list is through a "pointer to decl-only
struct ip_mc_list" use.

Let's look at the DWARF to see if we see the same.

[5ebb608]    structure_type       abbrev: 25
             name                 (strp) "in_device"
             byte_size            (data2) 352
             decl_file            (data1) inetdevice.h (122)
             decl_line            (data1) 25

This is the definition DIE of the struct in_device type.

[...]
     [5ebb641]      member               abbrev: 4
                   name                 (strp) "mc_list"
                   type                 (ref4) [5ebb7f7]
                   decl_file            (data1) inetdevice.h (122)
                   decl_line            (data1) 31
                   data_member_location (data1) 24

This is the definition of the "in_device::mc_list" data member.

Its type is the DIE [5ebb7f7] ...

[...]

[5ebb7f7]    pointer_type         abbrev: 5
             type                 (ref4) [5ebb7fc]

Here we see that the DIE [5ebb7f7] is a pointer ...

[5ebb7fc]    structure_type       abbrev: 12
            name                 (strp) "ip_mc_list"
            declaration          (flag_present) yes

... to a struct ip_mc_list that is declaration-only.

Looking through the DWARF, there no public exported function that refers
directly or indirectly to the full definition of ip_mc_list, as defined by this
DIE, for instance:

 [9b97e73]    structure_type       abbrev: 3
             name                 (strp) "ip_mc_list"
             byte_size            (data1) 144
             decl_file            (data1) igmp.h (228)
             decl_line            (data1) 67
[...]

So, this is why libabigail considers that the /definition/ of the struct
ip_mc_list is not used by any function that is publicly defined.  So, that
struct definition is not part of the ABI.

What am I missing?

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

  parent reply	other threads:[~2022-01-24 15:07 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-22 11:35 [Bug default/26646] New: " gprocida+abigail at google dot com
2020-09-22 12:15 ` [Bug default/26646] " dodji at redhat dot com
2020-10-06 21:02 ` gprocida+abigail at google dot com
2020-10-07  9:33 ` gprocida+abigail at google dot com
2020-11-23 17:06 ` gprocida+abigail at google dot com
2022-01-17 17:46 ` gprocida at google dot com
2022-01-18  9:37 ` gprocida at google dot com
2022-01-18 11:20 ` gprocida at google dot com
2022-01-18 11:20 ` gprocida at google dot com
2022-01-18 11:32 ` gprocida at google dot com
2022-01-24 15:07 ` dodji at redhat dot com [this message]
2022-01-24 17:29 ` gprocida at google dot com
2022-02-07 10:40 ` gprocida at google dot com
2022-02-07 11:19 ` dodji at redhat dot com
2022-02-07 17:10 ` [Bug default/26646] unexpected " dodji at redhat dot com
2022-02-07 17:47 ` gprocida at google dot com
2022-02-07 21:15 ` gprocida at google dot com
2022-02-10 16:45 ` dodji at redhat dot com
2022-02-10 16:46 ` gprocida at google dot com
2022-02-10 17:21 ` gprocida at google dot com
2022-02-10 17:33 ` dodji at redhat dot com
2022-02-10 17:36 ` dodji at redhat dot com
2022-02-10 18:53 ` gprocida at google dot com
2022-02-11 12:51 ` gprocida at google dot com
2022-02-11 13:00 ` gprocida at google dot com
2022-02-24 11:09 ` dodji at redhat dot com
2022-02-24 12:16 ` gprocida at google dot com
2022-02-24 15:54 ` dodji at redhat dot com
2022-02-24 16:05 ` gprocida at google dot com
2022-02-28  9:59 ` dodji at redhat dot com
2022-02-28 10:01 ` dodji at redhat dot com
2022-03-01 14:34 ` gprocida at google dot com
2022-03-01 14:40 ` gprocida at google dot com
2022-03-02 13:34   ` Dodji Seketeli
2022-03-02 13:34 ` dodji at seketeli dot org
2022-03-02 22:36 ` gprocida at google dot com
2022-03-03 11:43 ` dodji at seketeli dot org
2022-03-03 13:32 ` gprocida at google dot com
2022-06-08 15:43 ` gprocida at google dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-26646-9487-2A6plAzCu2@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=libabigail@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).