This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: DLOPEN and Statically linked executable
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Steve Munroe <sjmunroe at us dot ibm dot com>
- Cc: libc-alpha at sources dot redhat dot com, Peter Zaitsev <peter at mysql dot com>
- Date: Thu, 20 Jun 2002 20:27:30 +0200
- Subject: Re: DLOPEN and Statically linked executable
- References: <OFB88811F3.0760A3AF-ON86256BDE.00635FB9@rchland.ibm.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Thu, Jun 20, 2002 at 01:23:11PM -0500, Steve Munroe wrote:
> > Because it lacks a thread pointer register in its ABI. AFAIK Geoff
> Keating
> > wants to change this soon. IA-64, Sparc*, S390* etc. have one in their
> ABIs,
> > Alpha, IA-32 and X86-64 use magic (be it PAL call on alpha or %gs segment
> > on the other two).
>
> The PowerPC64 ABI does not seem to support the magic allowing thread stacks
> to "float". The stack frames "back chain" field, would seem to make moving
> a thread stack around (in virtual memory) impractical. But there should be
> a better way to set/change the thread stack size on a process wide basis
> (without resorting to pthread_attr_setstacksize).
Floating stacks is not about moving a thread stack once the thread
is started, it just means that it can be allocated anywhere.
> > It would be good to reserve one from the beginning.
> > The tp register is not only about ability to pthread_attr_setstacksize,
> but
> > also thread local storage implementation depends heavily on it.
>
> The PowerPC64 ABI states that R13 is " Reserved for use as system Thread
> ID".
Fine, so you should use floating stacks on ppc64...
Jakub