From 2c3ece881d4d8719862a02a5484ef11c53f2f851 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 21 Mar 2008 06:58:23 +0000 Subject: michael_d writes in [#2064]: fix building on linux-2.0 systems --- libc/sysdeps/linux/common/prctl.c | 3 +++ libc/sysdeps/linux/common/sendfile.c | 4 ++++ libc/sysdeps/linux/common/setresgid.c | 10 +++++++--- libc/sysdeps/linux/common/setresuid.c | 10 +++++++--- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/libc/sysdeps/linux/common/prctl.c b/libc/sysdeps/linux/common/prctl.c index b50caf32f..485386727 100644 --- a/libc/sysdeps/linux/common/prctl.c +++ b/libc/sysdeps/linux/common/prctl.c @@ -10,5 +10,8 @@ #include #include /* psm: including sys/prctl.h would depend on kernel headers */ + +#ifdef __NR_prctl extern int prctl (int, long, long, long, long); _syscall5(int, prctl, int, option, long, arg2, long, arg3, long, arg4, long, arg5); +#endif diff --git a/libc/sysdeps/linux/common/sendfile.c b/libc/sysdeps/linux/common/sendfile.c index 13cbdebc6..18427e85b 100644 --- a/libc/sysdeps/linux/common/sendfile.c +++ b/libc/sysdeps/linux/common/sendfile.c @@ -17,9 +17,13 @@ #undef sendfile64 +#ifdef __NR_sendfile + _syscall4(ssize_t, sendfile, int, out_fd, int, in_fd, __off_t *, offset, size_t, count); #if ! defined __NR_sendfile64 && defined __UCLIBC_HAS_LFS__ strong_alias(sendfile,sendfile64) #endif + +#endif /* __NR_sendfile */ diff --git a/libc/sysdeps/linux/common/setresgid.c b/libc/sysdeps/linux/common/setresgid.c index 3fc4210a4..3bb54e3aa 100644 --- a/libc/sysdeps/linux/common/setresgid.c +++ b/libc/sysdeps/linux/common/setresgid.c @@ -11,18 +11,21 @@ #ifdef __USE_GNU #include -libc_hidden_proto(setresgid) - #if defined(__NR_setresgid32) # undef __NR_setresgid # define __NR_setresgid __NR_setresgid32 + +libc_hidden_proto(setresgid) _syscall3(int, setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid) +libc_hidden_def(setresgid) #elif defined(__NR_setresgid) + # define __NR___syscall_setresgid __NR_setresgid static inline _syscall3(int, __syscall_setresgid, __kernel_gid_t, rgid, __kernel_gid_t, egid, __kernel_gid_t, sgid); +libc_hidden_proto(setresgid) int setresgid(gid_t rgid, gid_t egid, gid_t sgid) { if (((rgid + 1) > (gid_t) ((__kernel_gid_t) - 1U)) @@ -33,7 +36,8 @@ int setresgid(gid_t rgid, gid_t egid, gid_t sgid) } return (__syscall_setresgid(rgid, egid, sgid)); } +libc_hidden_def(setresgid) + #endif -libc_hidden_def(setresgid) #endif diff --git a/libc/sysdeps/linux/common/setresuid.c b/libc/sysdeps/linux/common/setresuid.c index ce3737bfc..883d7a952 100644 --- a/libc/sysdeps/linux/common/setresuid.c +++ b/libc/sysdeps/linux/common/setresuid.c @@ -11,18 +11,21 @@ #ifdef __USE_GNU #include -libc_hidden_proto(setresuid) - #if defined(__NR_setresuid32) # undef __NR_setresuid # define __NR_setresuid __NR_setresuid32 + +libc_hidden_proto(setresuid) _syscall3(int, setresuid, uid_t, ruid, uid_t, euid, uid_t, suid) +libc_hidden_def(setresuid) #elif defined(__NR_setresuid) + # define __NR___syscall_setresuid __NR_setresuid static inline _syscall3(int, __syscall_setresuid, __kernel_uid_t, rgid, __kernel_uid_t, egid, __kernel_uid_t, sgid); +libc_hidden_proto(setresuid) int setresuid(uid_t ruid, uid_t euid, uid_t suid) { if (((ruid + 1) > (uid_t) ((__kernel_uid_t) - 1U)) @@ -33,7 +36,8 @@ int setresuid(uid_t ruid, uid_t euid, uid_t suid) } return (__syscall_setresuid(ruid, euid, suid)); } +libc_hidden_def(setresuid) + #endif -libc_hidden_def(setresuid) #endif -- cgit v1.2.3