[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-arm-kernel
Subject:    Re: removed syscalls and glibc
From:       Matthias Welwarsky <mwelwarsky () web ! de>
Date:       2003-10-03 14:55:35
[Download RAW message or body]

On Friday 03 October 2003 16:13, Robin Farine wrote:
> When one builds glibc-2.3.2 with kernel headers from
> linux-2.6.0-test[2-6], at least the waitpid(2) function doesn't work
> anymore. The glibc implementation does something like
>
> #ifdef __NR_waitpid
>         waitpid syscall
> #else
>         wait4 syscall
> #endif
>
> Since the asm-arm/unistd.h header defines __NR_waitpid but the kernel
> doesn't actually implement it, waitpid(2) always returns -1 with errno
> et to ENOTSUP.
>
>
> Would it be acceptable in general to change the definition of a
> removed system call in unistd.h to something like
>
> #define __removed_NR_foo

I'd say it's a bug in the libc, because AFAIK there was never a waitpid() for 
ARM, at least in 2.4 it too reports ENOTSUP. The C library should probably 
detect this and emulate the call with wait4(). For x86, there's emulation 
code that does exactly this in kernel/exit.c.

In general, I'd say it's not a good idea to remove a system call at all, 
because it breaks the kernels ABI.

regards,	
	matthias


-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ/Etiquette:       http://www.arm.linux.org.uk/armlinux/mailinglists.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic