mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Rich Felker <dalias@libc.org>,
	Mikael Pettersson <mikpelinux@gmail.com>,
	Russ Cox <rsc@golang.org>, Linux API <linux-api@vger.kernel.org>,
	Ian Taylor <iant@golang.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 11:20:31 -0700	[thread overview]
Message-ID: <f420daee-9a06-414b-911f-5db7b7b37abe@email.android.com> (raw)
In-Reply-To: <CALCETrXTpkto2gJBiFC4CR5D=Lqf2YfP5BBH02f8hFW+TUGqeA@mail.gmail.com>



On June 15, 2014 10:40:03 AM PDT, Andy Lutomirski <luto@amacapital.net> wrote:
>On Sun, Jun 15, 2014 at 10:05 AM, H. Peter Anvin <hpa@zytor.com> wrote:
>> On 06/15/2014 07:35 AM, Rich Felker wrote:
>>>
>>> Arguably, it was a mistake for the kernel to expose a virtual ELF to
>>> begin with, and it should just have exposed a "lookup function by
>>> name" operation to begin with. Yes this can be done in userspace,
>but
>>> I see it more as a matter of "fixing a broken API design".
>>>
>>
>> What the fsck are you smoking?  There is immense value in providing a
>> stable and very well-defined data structure, which also happens to be
>> what dynamic linkers already want to consume.  Providing a helper for
>> crippled libc applications has potential value.  Shaving a few
>hundred
>> bytes off static applications is a very weak argument, simply because
>it
>> is such a small fraction of the enormous cost of a static
>application,
>> and static applications are problematic in a number of other ways,
>> especially the lack of ability to fix bugs.
>>
>> Treating the kernel as an ersatz dynamic library for "static"
>> applications is kind of silly -- after all, why not provide an entire
>> libc in the vdso?  I have actually seen people advocate for doing
>that.
>
>To be clear, I have no desire whatsoever to give the vdso an actual
>ELF parser or anything else that userspace should be providing itself.
>I think that a special-purpose vdso parser in the vdso makes some
>sense, though, since userspace might otherwise provide one for the
>sole purpose of parsing the vdso.
>
>And there's plenty of reasons that having the vdso be an ELF image is
>useful.  For one thing, gdb can take advantage of it.  For another,
>CRIU is parsing it for a rather different reason, and something like
>__vdso_findsym won't fill that need.
>
>Also, given the general lack of a comprehensible specification of what
>the GNU flavor of the ELF format actually is [1], there's something to
>be said for reducing the proliferation of ELF parsers.  glibc and
>binutils are quite unlikely to become incompatible with each other,
>but I sincerely doubt that anyone from binutils land is likely to
>review (and maintain!) my ELF parser, Go's, or a hypothetical future
>ELF parser from any of the other glibc-less things.  If those things
>use one that's in the kernel, then it's easy for the kernel to
>guarantee that each vdso image can successfully parse itself.
>
>[1] The only comprehensible description of the GNU hash extension that
>I could find is on Oracle's blog (!)
>

Curious about this blog.  We do have a GNU hash implementation in Syslinux, too, for another reference.

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

  parent reply	other threads:[~2014-06-15 18:20 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
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 [this message]
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=f420daee-9a06-414b-911f-5db7b7b37abe@email.android.com \
    --to=hpa@zytor.com \
    --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®