mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Ian Lance Taylor <iant@golang.org>
Cc: Andy Lutomirski <luto@amacapital.net>,
	Andi Kleen <andi@firstfloor.org>, Rich Felker <dalias@libc.org>,
	Mikael Pettersson <mikpelinux@gmail.com>,
	Russ Cox <rsc@golang.org>, Linux API <linux-api@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	X86 ML <x86@kernel.org>
Subject: Re: [RFC 0/2] __vdso_findsym
Date: Sun, 15 Jun 2014 12:56:39 -0700	[thread overview]
Message-ID: <8607961d-b42a-4dba-a736-d3a8586ee42d@email.android.com> (raw)
In-Reply-To: <CAKOQZ8z9r4Kw=0MNn29CMzD0-ZF=yCL2QfQp-oh==5MUcMQmuA@mail.gmail.com>

You can link against vdso.so if you want to; the kernel build provides an option to install that image.  Doesn't mean that any particular libc uses it.

On June 15, 2014 12:50:36 PM PDT, Ian Lance Taylor <iant@golang.org> wrote:
>On Sun, Jun 15, 2014 at 12:31 PM, H. Peter Anvin <hpa@zytor.com> wrote:
>> The weak symbols are well-known names.  The __vdso symbols are
>strong.
>
>I see.  But I don't understand how this is supposed to work.  When I
>link a program against gettimeofday, I get a reference to gettimeofday
>with version GLIBC_2.2.5.  After all, I only link against libc.so; I
>don't link against the vDSO.  The VDSO provides gettimeofday with
>version LINUX_2.6.  Since those versions don't match, the gettimeofday
>reference in my executable will not be satisfied by the definition in
>the vDSO.  So at dynamic link time my program is always going to be
>linked with the gettimeofday in libc.so, which will in turn call the
>gettimeofday in the vDSO.
>
>Am I missing something that makes the definition of gettimeofday with
>version LINUX_2.6 in the vDSO useful?
>
>Ian
>
>
>
>> On June 15, 2014 12:22:17 PM PDT, Ian Lance Taylor <iant@golang.org>
>wrote:
>>>On Sun, Jun 15, 2014 at 12:14 PM, H. Peter Anvin <hpa@zytor.com>
>wrote:
>>>>
>>>> If it doesn't, then you incur an additional indirection penalty. 
>The
>>>strong __vdso symbol allows the libc wrapper to fall back to the vdso
>>>implementation, the weak symbol allows three to be no wrapper at all.
>>>This is good.
>>>>
>>>> The reason for changing ABI would be shifting types.  This is very
>>>much how glibc manages transitions.
>>>
>>>The purpose of symbol versioning is so that symbols with well known
>>>names, like stat, can continue to use those same names while changing
>>>types.  Both old and new programs can continue to use the name stat
>>>and continue to work even though they use different types.
>>>
>>>I don't see how this applies to the kernel VDSO.  Those symbols do
>not
>>>use well-known names; they use names like __vdso_time.  If you change
>>>the types used by those symbols, you can change the name as well.
>>>What is the downside?
>>>
>>>Ian
>>
>> --
>> Sent from my mobile phone.  Please pardon brevity and lack of
>formatting.

-- 
Sent from my mobile phone.  Please pardon brevity and lack of formatting.

  reply	other threads:[~2014-06-15 19:57 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-14 18:16 Andy Lutomirski
2014-06-14 18:16 ` [RFC 1/2] uapi: Add some missing dynamic table-related definitions to elf.h Andy Lutomirski
2014-06-14 18:16 ` [RFC 2/2] [NOT READY] x86/vdso: Add __vdso_findsym Andy Lutomirski
2014-06-14 21:30 ` [RFC 0/2] __vdso_findsym Rich Felker
2014-06-14 22:38   ` Andy Lutomirski
2014-06-14 23:36     ` H. Peter Anvin
2014-06-15  3:59       ` H. Peter Anvin
2014-06-15  6:49         ` Andy Lutomirski
2014-06-15 14:25 ` Mikael Pettersson
2014-06-15 14:35   ` Rich Felker
2014-06-15 15:47     ` Andy Lutomirski
2014-06-15 17:05     ` H. Peter Anvin
2014-06-15 17:40       ` Andy Lutomirski
2014-06-15 17:57         ` H. Peter Anvin
2014-06-15 18:20           ` Andy Lutomirski
2014-06-15 18:39             ` H. Peter Anvin
2014-06-15 18:54               ` Andy Lutomirski
2014-06-15 19:14                 ` H. Peter Anvin
2014-06-15 19:22                   ` Ian Lance Taylor
2014-06-15 19:31                     ` H. Peter Anvin
2014-06-15 19:50                       ` Ian Lance Taylor
2014-06-15 19:56                         ` H. Peter Anvin [this message]
2014-06-15 20:53                           ` Andy Lutomirski
2014-06-15 21:13                             ` H. Peter Anvin
2014-06-16  0:55                   ` Rich Felker
2014-06-16  2:36             ` Andi Kleen
2014-06-16  3:49               ` Rich Felker
2014-06-16 14:08               ` Ian Lance Taylor
2014-06-16 14:38                 ` Andi Kleen
2014-06-16 14:58                   ` Rich Felker
2014-06-16 15:31                   ` Ian Lance Taylor
2014-06-16 15:42                     ` Rich Felker
2014-06-20 15:55                       ` Andy Lutomirski
2014-06-20 16:07                         ` Rich Felker
2014-06-16 14:56                 ` Rich Felker
2014-06-15 18:20         ` H. Peter Anvin
2014-06-15 18:22           ` Andy Lutomirski
2014-06-16  6:39             ` Rich Felker
2014-06-16  1:06       ` Rich Felker

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=8607961d-b42a-4dba-a736-d3a8586ee42d@email.android.com \
    --to=hpa@zytor.com \
    --cc=andi@firstfloor.org \
    --cc=dalias@libc.org \
    --cc=iant@golang.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mikpelinux@gmail.com \
    --cc=rsc@golang.org \
    --cc=x86@kernel.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

all inboxes | Powered by JetHome®