diff options
Diffstat (limited to 'libc')
-rw-r--r-- | libc/sysdeps/linux/common/getgroups.c | 13 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/setgroups.c | 12 |
2 files changed, 24 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/common/getgroups.c b/libc/sysdeps/linux/common/getgroups.c index a922b7cd6..6903ed14f 100644 --- a/libc/sysdeps/linux/common/getgroups.c +++ b/libc/sysdeps/linux/common/getgroups.c @@ -14,8 +14,17 @@ libc_hidden_proto(getgroups) -libc_hidden_proto(sysconf) +#if defined(__NR_getgroups32) +# undef __NR_getgroups +# define __NR_getgroups __NR_getgroups32 +_syscall2(int, getgroups, int, size, gid_t *, list); + +#elif __WORDSIZE == 64 +_syscall2(int, getgroups, int, size, gid_t *, list); + +#else +libc_hidden_proto(sysconf) #define MIN(a,b) (((a)<(b))?(a):(b)) #define __NR___syscall_getgroups __NR_getgroups @@ -49,4 +58,6 @@ ret_error: return ngids; } } +#endif + libc_hidden_def(getgroups) diff --git a/libc/sysdeps/linux/common/setgroups.c b/libc/sysdeps/linux/common/setgroups.c index b767f6aa7..dd1a03f38 100644 --- a/libc/sysdeps/linux/common/setgroups.c +++ b/libc/sysdeps/linux/common/setgroups.c @@ -14,6 +14,16 @@ libc_hidden_proto(setgroups) +#if defined(__NR_setgroups32) +# undef __NR_setgroups +# define __NR_setgroups __NR_setgroups32 +_syscall2(int, setgroups, size_t, size, const gid_t *, list); + +#elif __WORDSIZE == 64 +_syscall2(int, setgroups, size_t, size, const gid_t *, list); + +#else + libc_hidden_proto(sysconf) #define __NR___syscall_setgroups __NR_setgroups @@ -49,4 +59,6 @@ ret_error: return i; } } +#endif + libc_hidden_def(setgroups) |