From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 71DE93858020; Mon, 24 Jan 2022 15:07:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 71DE93858020 From: "dodji at redhat dot com" To: libabigail@sourceware.org Subject: [Bug default/26646] unexpectedly declaration-only types Date: Mon, 24 Jan 2022 15:07:07 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: libabigail X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dodji at redhat dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: dodji at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jan 2022 15:07:07 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D26646 --- 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 ty= pe "pointer to decl-only struct ip_mc_list". Moreover, the only use of struct ip_mc_list is through a "pointer to decl-o= nly 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? --=20 You are receiving this mail because: You are on the CC list for the bug.=