libc: Fix prctl() declaration.

This change fixes the prctl() declaration to match GLibc, and allow us
to build gcc-4.6 for Android (among other things). Note that this does
not change the source and binary interfaces.

Change-Id: I3900c957f0da8b3548cbe9da8c41d50099dc19d6
This commit is contained in:
David 'Digit' Turner 2011-05-26 02:46:41 +02:00
parent 9062a23691
commit b083bb57f5
3 changed files with 12 additions and 4 deletions

View File

@ -76,6 +76,8 @@ int setpgid(pid_t, pid_t) 57
pid_t vfork(void) 190,-1,190
int setregid:setregid32(gid_t, gid_t) 204
int chroot(const char *) 61
# IMPORTANT: Even though <sys/prctl.h> declares prctl(int,...), the syscall stub must take 6 arguments
# to match the kernel implementation.
int prctl(int option, unsigned int arg2, unsigned int arg3, unsigned int arg4, unsigned int arg5) 172
int capget(cap_user_header_t header, cap_user_data_t data) 184
int capset(cap_user_header_t header, const cap_user_data_t data) 185

View File

@ -32,8 +32,13 @@
__BEGIN_DECLS
extern int prctl(int option, unsigned long arg2, unsigned long arg3 , unsigned
long arg4, unsigned long arg5);
/* IMPORTANT NOTE: This function is declared as taking a variable number
* of arguments to match the GLibc definition. However
* its declaration inside SYSCALLS.TXT *must* make it
* take 6 arguments to ensure consistency with the kernel
* implementation.
*/
extern int prctl(int option, ...);
__END_DECLS

View File

@ -70,8 +70,9 @@ extern int execlp(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int capget(cap_user_header_t hdrp, cap_user_data_t datap);
extern int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
extern int prctl(int option, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5);
/* IMPORTANT: See comment under <sys/prctl.h> about this declaration */
extern int prctl(int option, ...);
extern int nice(int);