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]

Re: [PATCH] Cleanup PPC32 syscalls.list


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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]