This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: [PATCH] Cleanup PPC32 syscalls.list
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- To: Roland McGrath <roland at redhat dot com>
- Cc: libc-alpha at sources dot redhat dot com
- Date: Tue, 5 Nov 2002 15:59:41 +0100
- Subject: Re: [PATCH] Cleanup PPC32 syscalls.list
- References: <200211050301.gA531xe11966@magilla.sf.frob.com>
On Tuesday 05 November 2002 04:01, Roland McGrath wrote:
> I put your changes in and removed some other s_* and sys_* stubs too.
> After converting various explicit __syscall_* calls to use INLINE_SYSCALL
> it looks like it's all working fine. You should probably check to make
> sure I didn't make any more typos that weren't caught by make check.
Hehe, remember the PPC32 register passing ABI for long long? :-)
You just broke [f]truncate64, pread[64], pwrite[64]. I would like to leave
these with the s_*+prototype setup which isn't as error prone as trying to
emulate the ABI when using the INLINE_SYSCALL macro. I guess I should add
something like
if (sizeof (arg) > 4) __illegal_INLINE_SYSCALL_usage ();
to INLINE_SYSCALL to prevent future abuses?
The attached patch reverts the problematic parts and also moves the
__NR_pread64 and __NR_pwrite64 handling to sysdep.h, so the __syscall_* stubs
will do the right thing too. These files should probably be splitted between
ppc32 and ppc64 as ppc64 doesn't need compatibility with old kernels. I
talked to the ppc64 people and it seems they are already working on it the
split, so I will leave that move to them.
After talking to Paul Mackerras on the syscall ABI in linux-2.5 I added a
small fix for powerpc32/sysdep.h as well.
Franz.
2002-11-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h,
sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Handle __NR_pread64
and __NR_pwrite64.
* sysdeps/unix/sysv/linux/powerpc/pread.c,
sysdeps/unix/sysv/linux/powerpc/pread64.c,
sysdeps/unix/sysv/linux/powerpc/pwrite.c,
sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Remove __NR_pread64
and __NR_pwrite64.
Revert change to use INLINE_SYSCALL.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INLINE_SYSCALL):
Update clobber list and add a comment about the syscall ABI.