linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Marek <mmarek@suse.com>
To: Dodji Seketeli <dodji@seketeli.org>
Cc: Nicholas Piggin <npiggin@gmail.com>,
	Ian Campbell <ijc@hellion.org.uk>,
	Ben Hutchings <ben@decadent.org.uk>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Adam Borowski <kilobyte@angband.pl>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	Debian kernel maintainers <debian-kernel@lists.debian.org>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	Arnd Bergmann <arnd@arndb.de>, Ingo Molnar <mingo@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86/kbuild: enable modversions for symbols exported from asm
Date: Wed, 14 Dec 2016 10:15:39 +0100	[thread overview]
Message-ID: <20161214091539.GA9000@sepie.suse.cz> (raw)
In-Reply-To: <867f72vqec.fsf@seketeli.org>

On 2016-12-14 09:58, Dodji Seketeli wrote:
> Michal Marek <mmarek@suse.com> a écrit:
> 
> [...]
> 
>> Does the abidiff tool handle the case when an exported symbol is moved
>> between .c files? This is always a mess with genksyms, because the two
>> .c files have different includes and thus the type expansion stops at
>> different points. So typically the move needs to be reverted as a
>> workaround.
> 
> Let's consider the function:
> 
>   'void foo(struct S*);'
> 
> If two ELF binaries contain a definition of that function foo which ELF
> symbol is exported, if the type struct S hasn't changed, and if the only
> difference between the ELF binaries is that foo was defined in the
> translation unit a.c in the first binary and in b.c in the second
> binary, then the comparison engine of libabigail (which is the library
> that abidiff uses) will consider the declarations of the two foo
> functions as being equal -- no matter what include file comes before the
> definition point of foo in a.c and b.c.  If it does not, then it's a bug
> that ought to be fixed.
> 
> If you feel that I haven't understood your question, then I guess a
> minimal standalone example (in the form of C source code) that
> illustrates your use case could be helpful to me.

A minimal example would be

t1.c:
struct s1;
struct s2 {
	int i;
}
struct s3 {
	struct s1 *ptr1;
	struct s2 *ptr2;
}
void foo(struct s3*);
EXPORT_SYMBOL(foo);

t2.c:
struct s1 {
	int j;
}
struct s2;
struct s3 {
	struct s1 *ptr1;
	struct s2 *ptr2;
}
void foo(struct s3*);
EXPORT_SYMBOL(foo);

genksyms expands this to
void foo ( struct s3 { struct s1 { UNKNOWN } * ptr1 ; struct s2 { int i ; } * ptr2 ; } * )

or

void foo ( struct s3 { struct s1 { int j ; } * ptr1 ; struct s2 { UNKNOWN } * ptr2 ; } * )

respectively. The types are the same, but their visibility in the
different compilation units differs.

Michal

  parent reply	other threads:[~2016-12-14  9:15 UTC|newest]

Thread overview: 167+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20161123205338.GA12050@angband.pl>
     [not found] ` <20161123210256.31501-1-kilobyte@angband.pl>
     [not found]   ` <20161124044028.GA12704@gmail.com>
2016-11-24  5:20     ` [PATCH] x86/kbuild: enable modversions for symbols exported from asm Nicholas Piggin
2016-11-24  6:00       ` Ingo Molnar
2016-11-24  7:20         ` Nicholas Piggin
2016-11-24  7:36           ` Greg Kroah-Hartman
2016-11-24  7:36             ` Greg Kroah-Hartman
2016-11-24  7:53             ` Nicholas Piggin
2016-11-24  7:53               ` Nicholas Piggin
2016-11-24  9:32               ` Michal Marek
2016-11-24  9:32                 ` Michal Marek
2016-11-24 10:03                 ` Nicholas Piggin
2016-11-24 10:03                   ` Nicholas Piggin
2016-11-24 10:51                   ` Michal Marek
2016-11-24 10:51                     ` Michal Marek
2016-11-24  9:38               ` Arnd Bergmann
2016-11-24  9:38                 ` Arnd Bergmann
2016-11-24 10:01                 ` Nicholas Piggin
2016-11-24 10:01                   ` Nicholas Piggin
2016-11-24  9:56               ` Greg Kroah-Hartman
2016-11-24 10:31                 ` Nicholas Piggin
2016-11-24 10:31                   ` Nicholas Piggin
2016-11-24 15:24                   ` Greg Kroah-Hartman
2016-11-25  0:40                     ` Nicholas Piggin
2016-11-25 18:00                       ` Linus Torvalds
2016-11-25 18:00                         ` Linus Torvalds
2016-11-26  0:37                         ` Nicholas Piggin
2016-11-29  1:15                         ` Ben Hutchings
2016-11-29  1:15                           ` Ben Hutchings
2016-11-29  2:31                           ` Nicholas Piggin
2016-11-29  9:14                             ` Michal Marek
2016-11-29  9:14                               ` Michal Marek
2016-11-29  4:08                           ` Linus Torvalds
2016-11-29  4:08                             ` Linus Torvalds
2016-11-29 13:19                             ` Adam Borowski
2016-11-29 13:19                               ` Adam Borowski
2016-11-29 13:29                               ` Ingo Molnar
2016-11-29 14:24                                 ` Adam Borowski
2016-11-29 13:51                               ` Adam Borowski
2016-11-29 13:51                                 ` Adam Borowski
2016-11-29 15:27                                 ` Linus Torvalds
2016-11-29 16:03                                   ` Michal Marek
2016-11-29 16:17                                     ` Linus Torvalds
2016-11-29 19:57                                       ` Ben Hutchings
2016-11-29 19:57                                         ` Ben Hutchings
2016-11-29 20:35                                         ` Linus Torvalds
2016-11-30 18:18                                           ` Nicholas Piggin
2016-11-30 18:40                                             ` Linus Torvalds
2016-11-30 18:40                                               ` Linus Torvalds
2016-11-30 21:33                                               ` Ben Hutchings
2016-11-30 21:33                                                 ` Ben Hutchings
2016-12-01  1:55                                                 ` Nicholas Piggin
2016-12-01  2:35                                                   ` Ben Hutchings
2016-12-01  2:35                                                     ` Ben Hutchings
2016-12-01  3:39                                                     ` Nicholas Piggin
2016-12-01  3:39                                                       ` Nicholas Piggin
2016-12-01 16:12                                                       ` Michal Marek
2016-12-02 14:36                                                         ` Hannes Frederic Sowa
2016-12-02 14:36                                                           ` Hannes Frederic Sowa
2016-12-09  3:33                                                         ` Nicholas Piggin
2016-12-09 15:21                                                           ` Ian Campbell
2016-12-09 15:21                                                             ` Ian Campbell
2016-12-09 16:15                                                             ` Nicholas Piggin
2016-12-09 16:15                                                               ` Nicholas Piggin
2016-12-09 22:46                                                               ` Dodji Seketeli
2016-12-10 12:41                                                                 ` Greg Kroah-Hartman
2016-12-10 12:41                                                                   ` Greg Kroah-Hartman
2016-12-12  3:50                                                                   ` Nicholas Piggin
2016-12-12  9:08                                                                   ` Ian Campbell
2016-12-12  9:08                                                                     ` Ian Campbell
2016-12-14 17:59                                                                   ` Don Zickus
2016-12-13  1:07                                                                 ` Stanislav Kozina
2016-12-13  1:07                                                                   ` Stanislav Kozina
2016-12-13 22:51                                                                 ` Michal Marek
2016-12-13 22:51                                                                   ` Michal Marek
2016-12-14  8:58                                                                   ` Dodji Seketeli
2016-12-14  8:58                                                                     ` Dodji Seketeli
2016-12-14  9:15                                                                     ` Michal Marek [this message]
2016-12-14  9:15                                                                       ` Michal Marek
2016-12-14  9:36                                                                       ` Dodji Seketeli
2016-12-14  9:36                                                                         ` Dodji Seketeli
2016-12-14  9:44                                                                         ` Michal Marek
2016-12-14 10:02                                                                           ` Dodji Seketeli
2016-12-14 10:02                                                                             ` Dodji Seketeli
2016-12-14 10:15                                                                             ` Michal Marek
2016-12-14 10:15                                                                               ` Michal Marek
2016-12-14  9:56                                                                         ` Dodji Seketeli
2016-12-14  9:37                                                                       ` Michal Marek
2016-12-14  9:37                                                                         ` Michal Marek
2016-12-01  4:13                                               ` Don Zickus
2016-12-01  4:13                                                 ` Don Zickus
2016-12-01  4:32                                                 ` Nicholas Piggin
2016-12-01  4:32                                                   ` Nicholas Piggin
2016-12-01 15:20                                                   ` Don Zickus
2016-12-01 15:20                                                     ` Don Zickus
2016-12-01 15:26                                                     ` Christoph Hellwig
2016-12-01 15:40                                                       ` Don Zickus
2016-12-01 16:06                                                         ` Greg Kroah-Hartman
2016-12-01 18:42                                                           ` Don Zickus
2016-12-01 18:42                                                             ` Don Zickus
2016-12-09  3:50                                                     ` Nicholas Piggin
2016-12-09  3:50                                                       ` Nicholas Piggin
2016-12-09  7:55                                                       ` Stanislav Kozina
2016-12-09  7:55                                                         ` Stanislav Kozina
2016-12-09  8:14                                                         ` Nicholas Piggin
2016-12-09  8:14                                                           ` Nicholas Piggin
2016-12-09 14:36                                                           ` Stanislav Kozina
2016-12-09 14:36                                                             ` Stanislav Kozina
2016-12-09 15:56                                                             ` Nicholas Piggin
2016-12-09 15:56                                                               ` Nicholas Piggin
2016-12-09 16:03                                                               ` Greg Kroah-Hartman
2016-12-12  9:48                                                                 ` Stanislav Kozina
2016-12-12  9:48                                                                   ` Stanislav Kozina
2016-12-13  7:25                                                                   ` Nicholas Piggin
2016-12-14 14:04                                                                 ` Hannes Frederic Sowa
2016-12-14 14:04                                                                   ` Hannes Frederic Sowa
2016-12-15  2:06                                                                   ` Nicholas Piggin
2016-12-15 11:19                                                                     ` Hannes Frederic Sowa
2016-12-15 12:03                                                                       ` Nicholas Piggin
2016-12-15 12:03                                                                         ` Nicholas Piggin
2016-12-15 13:15                                                                         ` Hannes Frederic Sowa
2016-12-15 14:15                                                                           ` Nicholas Piggin
2016-12-15 14:15                                                                             ` Nicholas Piggin
2016-12-15 15:17                                                                             ` Hannes Frederic Sowa
2016-12-15 15:17                                                                               ` Hannes Frederic Sowa
2016-12-15 13:35                                                                         ` Stanislav Kozina
2016-12-15 13:35                                                                           ` Stanislav Kozina
2016-12-09 16:16                                                       ` Don Zickus
2016-12-01 10:48                                                 ` Stanislav Kozina
2016-12-01 11:09                                                   ` Nicholas Piggin
2016-12-01 11:09                                                     ` Nicholas Piggin
2016-12-01 11:33                                                     ` Stanislav Kozina
2016-12-01 11:33                                                       ` Stanislav Kozina
2016-12-01 12:39                                                       ` Nicholas Piggin
2016-12-01 12:39                                                         ` Nicholas Piggin
2016-12-01 15:19                                                     ` Dodji Seketeli
2016-12-01 15:19                                                       ` Dodji Seketeli
2016-12-01 16:14                                                 ` Michal Marek
2016-12-01 16:14                                                   ` Michal Marek
2016-11-29 17:05                                   ` Adam Borowski
2016-11-29 17:05                                     ` Adam Borowski
2016-11-29 17:10                                     ` Linus Torvalds
2016-11-29 17:14                                       ` Linus Torvalds
2016-12-01 13:58                                         ` Arnd Bergmann
2016-12-01 13:58                                           ` Arnd Bergmann
2016-12-01 16:21                                           ` Michal Marek
2016-12-01 16:21                                             ` Michal Marek
2016-12-01 18:26                                           ` Linus Torvalds
2016-12-01 18:26                                             ` Linus Torvalds
2016-12-02 10:55                                             ` Arnd Bergmann
2016-12-02 12:40                                               ` [RFC, PATCH, v3.9] default exported asm symbols to zero Arnd Bergmann
2016-12-02 12:40                                                 ` Arnd Bergmann
2016-12-02 12:59                                                 ` Geert Uytterhoeven
2016-12-02 12:59                                                   ` Geert Uytterhoeven
2016-12-02 14:51                                                   ` Arnd Bergmann
2016-12-02 14:51                                                     ` Arnd Bergmann
2016-12-02 15:35                                                 ` Adam Borowski
2016-12-02 15:35                                                   ` Adam Borowski
2016-12-03  4:36                                                 ` Ben Hutchings
2016-12-03  4:36                                                   ` Ben Hutchings
2016-12-03 10:43                                                   ` Arnd Bergmann
2016-12-03 10:43                                                     ` Arnd Bergmann
2016-12-02 17:04                                               ` [PATCH] x86/kbuild: enable modversions for symbols exported from asm Linus Torvalds
2016-12-02 17:04                                                 ` Linus Torvalds
2016-12-04  7:44                                               ` Alan Modra
2016-12-04  7:44                                                 ` Alan Modra
2016-12-04 20:44                                                 ` Linus Torvalds
2016-12-04 20:44                                                   ` Linus Torvalds
2016-11-29 21:23                                       ` Michal Marek

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=20161214091539.GA9000@sepie.suse.cz \
    --to=mmarek@suse.com \
    --cc=arnd@arndb.de \
    --cc=ben@decadent.org.uk \
    --cc=debian-kernel@lists.debian.org \
    --cc=dodji@seketeli.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=ijc@hellion.org.uk \
    --cc=kilobyte@angband.pl \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=npiggin@gmail.com \
    --cc=torvalds@linux-foundation.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 NNTP newsgroup(s).