From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dodji Seketeli Subject: Re: [PATCH] x86/kbuild: enable modversions for symbols exported from asm Date: Wed, 14 Dec 2016 11:02:25 +0100 Message-ID: <86y3zirfpq.fsf@seketeli.org> References: <20161201125545.406d092c@roar.ozlabs.ibm.com> <1480559754.16599.92.camel@decadent.org.uk> <20161201143928.07a08348@roar.ozlabs.ibm.com> <6e8cf20b-2d2f-ba1f-e02c-c757d5a25db7@suse.com> <20161209133308.0acbb57a@roar.ozlabs.ibm.com> <1481296893.4509.135.camel@hellion.org.uk> <20161210021529.4a6e684f@roar.ozlabs.ibm.com> <86vaus3eld.fsf@seketeli.org> <867f72vqec.fsf@seketeli.org> <20161214091539.GA9000@sepie.suse.cz> <86twa6svhi.fsf@seketeli.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Return-path: In-Reply-To: (Michal Marek's message of "Wed, 14 Dec 2016 10:44:07 +0100") Sender: linux-kbuild-owner@vger.kernel.org To: Michal Marek Cc: Nicholas Piggin , Ian Campbell , Ben Hutchings , Linus Torvalds , Adam Borowski , Greg Kroah-Hartman , Linux Kbuild mailing list , Debian kernel maintainers , "linux-arch@vger.kernel.org" , Arnd Bergmann , Ingo Molnar , Linux Kernel Mailing List List-Id: linux-arch.vger.kernel.org Michal Marek a écrit: >> Libabigail does a "whole binary" analysis of types. >> >> So, consider the point of use of the type 'struct s1*'. Even if 'struct >> s' is just forward-declared at that point, the declaration of struct s1 >> is "resolved" to its definition. Even if the definition comes later in >> the binary. > > But there isn't any definition of struct s1 in t1.o. Does abidiff > "steal" the definition from the other object file? That would be > legitimate, I'm just curious. If there is another translation unit in the *same* binary that defines struct s1, then yes, it's "stolen", as you say. But if in the entire binary, struct s1 is just declared (not defined), then it'll compare equal to any struct s1 that is defined in the *second* binary. Cheers, -- Dodji From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from seketeli.net ([94.23.218.202]:46132 "EHLO ms.seketeli.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752752AbcLNKMH (ORCPT ); Wed, 14 Dec 2016 05:12:07 -0500 From: Dodji Seketeli Subject: Re: [PATCH] x86/kbuild: enable modversions for symbols exported from asm References: <20161201125545.406d092c@roar.ozlabs.ibm.com> <1480559754.16599.92.camel@decadent.org.uk> <20161201143928.07a08348@roar.ozlabs.ibm.com> <6e8cf20b-2d2f-ba1f-e02c-c757d5a25db7@suse.com> <20161209133308.0acbb57a@roar.ozlabs.ibm.com> <1481296893.4509.135.camel@hellion.org.uk> <20161210021529.4a6e684f@roar.ozlabs.ibm.com> <86vaus3eld.fsf@seketeli.org> <867f72vqec.fsf@seketeli.org> <20161214091539.GA9000@sepie.suse.cz> <86twa6svhi.fsf@seketeli.org> Date: Wed, 14 Dec 2016 11:02:25 +0100 In-Reply-To: (Michal Marek's message of "Wed, 14 Dec 2016 10:44:07 +0100") Message-ID: <86y3zirfpq.fsf@seketeli.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-arch-owner@vger.kernel.org List-ID: To: Michal Marek Cc: Nicholas Piggin , Ian Campbell , Ben Hutchings , Linus Torvalds , Adam Borowski , Greg Kroah-Hartman , Linux Kbuild mailing list , Debian kernel maintainers , "linux-arch@vger.kernel.org" , Arnd Bergmann , Ingo Molnar , Linux Kernel Mailing List Message-ID: <20161214100225.ARwJPYDAU-mmL0bxrIjolZjlHU1MaQeY7GqA22NjZWM@z> Michal Marek a écrit: >> Libabigail does a "whole binary" analysis of types. >> >> So, consider the point of use of the type 'struct s1*'. Even if 'struct >> s' is just forward-declared at that point, the declaration of struct s1 >> is "resolved" to its definition. Even if the definition comes later in >> the binary. > > But there isn't any definition of struct s1 in t1.o. Does abidiff > "steal" the definition from the other object file? That would be > legitimate, I'm just curious. If there is another translation unit in the *same* binary that defines struct s1, then yes, it's "stolen", as you say. But if in the entire binary, struct s1 is just declared (not defined), then it'll compare equal to any struct s1 that is defined in the *second* binary. Cheers, -- Dodji