This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Monday 06 January 2003 17:13, Jakub Jelinek wrote:
> On Sat, Jan 04, 2003 at 10:01:16PM +0100, Franz Sirl wrote:
> > On Saturday 04 January 2003 21:33, Jakub Jelinek wrote:
> > > On Sat, Jan 04, 2003 at 05:06:01PM +0100, Franz Sirl wrote:
> > > > *
> > > > linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.
> > > >h: New file.
> > >
> > > Thanks for working on this.
> >
> > I'm forced to, if I want to keep my system uptodate :-). Any idea about
> > the AIO problem?
>
> Actually, I have - broken pread* and pwrite*.
> The following patch (on top of the LIBC_CANCEL_HANDLED patch) should fix
> it. __syscall_pread/__syscall_pwrite uses r3,r4,r5,r7,r8 regs to pass
> arguments, so syscalls.list needs to indicate that.
> Alternatively, you could do LIBC_CANCEL_ASYNC/LIBC_CANCEL_RESET in
> sysdeps/unix/sysv/linux/powerpc/p{read,write}{,64}.c.
>
> Also, sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S needs cancellation
> support.
>
> 2003-01-06 Jakub Jelinek <jakub@redhat.com>
>
> * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
> (s_pread64, s_pwrite64): Add 6th argument.
> * sysdeps/unix/sysv/linux/powerpc/pread.c: Include sysdep-cancel.h,
> add LIBC_CANCEL_HANDLED.
> * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise.
> linuxthreads/
> * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
> (DOCARGS_6, UNDOCARGS_6): Define.
Uhm, sorry for the delay, I have a patch already for that. Your analysis for
the pread/pwrite problem is correct though, I noted this myself yesterday
morning, but the machines I have access to are quite slow...
Anyway, since I realized there is now a possible failure point with 64bit args
to syscalls and PSEUDO stubs as well, my refusal to use INLINE_SYSCALL
unfortunately has no advantage anymore (before the args argument simply
wasn't used and couldn't cause failures). The appended patch adds
*truncate64.c, pread*.c and pwrite*.c to PPC32. Would someone please so kind
and move the old files down to the powerpc64 directory?
There's also a small hunk for elf/dl-misc.c that makes it explicit that we
want the address of the IOV array. That way the sizeof safety checks I added
don't need to mess around with __builtin_classify_type.
Franz.
* elf/dl-misc.c (_dl_debug_vdprintf): Make taking address of array
explicit.
* sysdeps/powerpc/powerpc32/sysdep.h (PSEUDO_RET): Add branch hint.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S: Add cancellation
support.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Remove
ftruncate64, truncate64, pread64 and pwrite64 entries.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
(INLINE_SYSCALL): Add __builtin_expect.
(LOADARGS_n): Add argument size safety checks.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: New file.
linuxthreads:
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: Remove s_pread64 and
s_pwrite64.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Add support for
syscalls with 6 arguments.
Attachment:
glibc-ppc-cancellation-2.patch
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |