From: Jakub Jelinek <jakub@redhat.com>
To: Jamie Lokier <jamie@shareable.org>
Cc: Ulrich Drepper <drepper@redhat.com>,
john stultz <johnstul@us.ibm.com>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patch
Date: Fri, 30 Jan 2004 03:33:10 -0500 [thread overview]
Message-ID: <20040130083310.GH31589@devserv.devel.redhat.com> (raw)
In-Reply-To: <20040130041708.GA2816@mail.shareable.org>
On Fri, Jan 30, 2004 at 04:17:08AM +0000, Jamie Lokier wrote:
> Ulrich Drepper wrote:
> > > As this is x86, can't the syscall routines in Glibc call directly
> > > without a PLT entry?
> >
> > No, since this is just an ordinary jump through the PLT. That the
> > target DSO is synthesized is irrelevant. It's ld.so which needs the PIC
> > setup, not the called DSO.
>
> I have not explained well. Please read carefully, as I am certain no
> indirect jumps on the userspace side are needed, including the one
> currently in libc.
>
> It is possible to compile, assemble and link a shared library with
> -fno-PIC on x86, and this does work. I just tested it to make sure.
> Furthermore, the "prelink" program is effective on these libraries.
Only if there are no prelink conflicts in the read-only sections.
Furthermore, there is additional overhead of remapping RW and back RX
and wasted page. You can get around that by making a RWX section (which
ends up in the RW segment which gets a PF_X bit set as well), but that means
all the data in that segment is executable, which is obviously not
desirable, especially for libc.so.
> I'm talking about the "prelink" program. When you run "prelink" on a
> libc.so which has direct jump instructions as described above, is
> patches the libc.so file to contain the address of the kernel entry
> point at the time "prelink" was run.
Prelink ATM doesn't take VDSO into account at all and surely it would
be best if it did not have to. For example if VDSO is randomized, userspace
has no control over its placement like it has for shared libraries
(if DSO base is NULL, kernel randomizes, if non-NULL (usually means
prelinked), then does not randomize unless the binary is PIE).
Jakub
next prev parent reply other threads:[~2004-01-30 8:33 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-29 2:46 [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patch john stultz
2004-01-29 5:06 ` Ulrich Drepper
2004-01-29 13:26 ` Jamie Lokier
2004-01-29 18:05 ` Ulrich Drepper
2004-01-29 19:15 ` Jamie Lokier
2004-01-29 23:59 ` john stultz
2004-01-30 0:40 ` Ulrich Drepper
2004-01-30 0:31 ` Ulrich Drepper
2004-01-30 4:17 ` Jamie Lokier
2004-01-30 5:09 ` Ulrich Drepper
2004-01-30 9:29 ` Ingo Molnar
2004-02-03 4:38 ` Ulrich Drepper
2004-01-30 17:34 ` Jamie Lokier
2004-01-30 8:33 ` Jakub Jelinek [this message]
2004-01-30 17:21 ` Jamie Lokier
2004-01-31 0:10 ` Eric W. Biederman
2004-01-31 2:41 ` Jamie Lokier
2004-01-31 5:54 ` Eric W. Biederman
2004-02-01 1:28 ` Andrea Arcangeli
2004-02-03 4:35 ` Ulrich Drepper
2004-02-03 5:34 ` Andrea Arcangeli
2004-02-03 8:52 ` Jamie Lokier
2004-02-03 16:25 ` Andrea Arcangeli
2004-02-03 17:37 ` Jamie Lokier
2004-02-03 18:10 ` Andrea Arcangeli
2004-02-03 18:23 ` Jamie Lokier
2004-02-03 18:34 ` Andrea Arcangeli
2004-01-31 0:17 ` Eric W. Biederman
2004-01-31 2:20 ` john stultz
[not found] <1075344395.1592.87.camel@cog.beaverton.ibm.com.suse.lists.linux.kernel>
[not found] ` <401894DA.7000609@redhat.com.suse.lists.linux.kernel>
[not found] ` <20040201012803.GN26076@dualathlon.random.suse.lists.linux.kernel>
[not found] ` <401F251C.2090300@redhat.com.suse.lists.linux.kernel>
[not found] ` <20040203085224.GA15738@mail.shareable.org.suse.lists.linux.kernel>
[not found] ` <20040203162515.GY26076@dualathlon.random.suse.lists.linux.kernel>
[not found] ` <20040203173716.GC17895@mail.shareable.org.suse.lists.linux.kernel>
[not found] ` <20040203181001.GA26076@dualathlon.random.suse.lists.linux.kernel>
[not found] ` <20040203182310.GA18326@mail.shareable.org.suse.lists.linux.kernel>
2004-02-04 2:27 ` Andi Kleen
2004-02-04 2:40 ` Andrea Arcangeli
2004-02-04 4:21 ` Jamie Lokier
2004-02-05 21:43 ` Andrea Arcangeli
2004-02-06 4:15 ` Rik van Riel
2004-02-06 4:28 ` Andrea Arcangeli
2004-02-06 9:23 ` Ulrich Drepper
2004-02-06 15:49 ` Andrea Arcangeli
2004-02-07 0:37 ` Ulrich Drepper
2004-02-07 2:19 ` Andrea Arcangeli
2004-02-07 3:37 ` Daniel Jacobowitz
2004-02-07 4:36 ` Andrea Arcangeli
2004-02-07 4:53 ` Jamie Lokier
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=20040130083310.GH31589@devserv.devel.redhat.com \
--to=jakub@redhat.com \
--cc=drepper@redhat.com \
--cc=jamie@shareable.org \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.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