This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: PPC32 and state of the project
- From: "Kevin.Hendricks" <kevin dot hendricks at sympatico dot ca>
- To: Ulrich Drepper <drepper at redhat dot com>
- Cc: Steve Munroe <sjmunroe at us dot ibm dot com>, Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>, GNU libc devel <libc-alpha at sources dot redhat dot com>
- Date: Mon, 6 Jan 2003 15:18:21 -0500
- Subject: Re: PPC32 and state of the project
Hi,
Using floating stacks in in linuxthreads is a no-brainer. Minor tweaks
to pt-machine.h (and we can find and play with all the setjmp/longjmp
stuff to make sure we don't touch it) is enough.
So I have rebuilt glibc 2.3.1 using floating stacks with "R2" as the
thread register for ppc 32 and it passes make check with flying colors
and a disassembly of manager.c __pthread_manager shows r2 being nicely
used to hold self.
So there really isn't anything to using floating stacks on ppc32 so the
real work must be in figuring out thread local storage and I have
started to read Ulrich's tls.pdf but since I know little to nothing
about elf format and sections, I am now looking at his shared library
dsohowto.pdf to try and get myself up to speed since it seems to explain
elf sections some.
It will take a while to get up to speed.
I may look at the context stuff just for my own fun.
Kevin
On Monday, January 6, 2003, at 02:13 PM, Ulrich Drepper wrote:
Steve Munroe wrote:
Just to clarify. __longjmp and setcontext/swapcontext should not
change the
thread register. (i.e. preserved as in not touched)?
Correct.
At least this matches the implementation of sysdeps/i386/__longjmp.S
and
sysdeps/powerpc/powerpc64/__longjmp.S. However
sysdeps/powerpc/powerpc32/__longjmp.S does restore r2 so that needs to
change.
If r2 is chosen as the thread register this will have to change.
--
--------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
----
Kevin B. Hendricks
Associate Professor of Operations and Information Technology
Richard Ivey School of Business, University of Western Ontario
London Ontario, CANADA N6A 3K7
khendricks@ivey.uwo.ca