From: David Mosberger <davidm@napali.hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: new syscall-stub support now in CVS glibc
Date: Thu, 11 Dec 2003 02:00:27 +0000 [thread overview]
Message-ID: <marc-linux-ia64-107110849625591@msgid-missing> (raw)
The latest CVS tree of glibc now sports official support for the new
syscall-stubs (which enable EPC-based kernel entry and light-weight
system call handlers). For backwards-compatibility reasons, the new
stubs will only be used for NPTL/TLS-enabled versions of libc, but
that should be the normal case for most distros already (or it will be
the normal case soon).
Compared to the stubs which we discussed earlier on this list, there
was one small change: the kernel entry point is now being stored at
offset 8 instead of -8 of the thread-pointer (register r13). It turns
out that was easier to support in NPTL and since that word is
thread-library-specific anyhow, there was no reason not to use it. In
other words, the latest new syscall-stubs look like this:
adds r2 = 8, r13;;
ld8 r2 = [r2]
.save ar.pfs, r11
mov r11 = ar.pfs;;
.body
mov r15 = SYSCALLNUMBER
mov b7 = r2
br.call.sptk.many b6 = b7
.restore sp
mov ar.pfs = r11
Of course, no application should rely on this (they should use
syscall() instead, if necessary), but I just mention it for
completeness.
If you want to play with the new syscall-stubs, you'll need to update
GCC first because the existing GCCs have unwinders that aren't
sufficiently capable of supporting the new syscall-stubs. Jakub
Jelinek submitted a patch [1] for this already. The alternative (and
recommended) way to get GCC updated is to install libunwind v0.96 [2]
first and then to build GCC v3.3.x or newer. GCC will automatically
detect the presence of libunwind and use it as the unwinder in that
case.
Enjoy,
--david
[1] http://gcc.gnu.org/ml/gcc-patches/2003-12/msg00940.html
[2] http://www.hpl.hp.com/research/linux/libunwind/
next reply other threads:[~2003-12-11 2:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-11 2:00 David Mosberger [this message]
2003-12-12 3:17 ` new syscall-stub support now in CVS glibc Ian Wienand
2003-12-12 4:09 ` David Mosberger
2003-12-12 4:48 ` Ian Wienand
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=marc-linux-ia64-107110849625591@msgid-missing \
--to=davidm@napali.hpl.hp.com \
--cc=linux-ia64@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