svn commit: trunk/uClibc/libc/sysdeps/linux/common

vapier at uclibc.org vapier at uclibc.org
Fri Feb 10 02:02:34 UTC 2006


Author: vapier
Date: 2006-02-09 18:02:28 -0800 (Thu, 09 Feb 2006)
New Revision: 13893

Log:
add support for newer style kernel calls since some arches (like sparc) only provide the newer versions

Modified:
   trunk/uClibc/libc/sysdeps/linux/common/setegid.c
   trunk/uClibc/libc/sysdeps/linux/common/seteuid.c
   trunk/uClibc/libc/sysdeps/linux/common/setresgid.c
   trunk/uClibc/libc/sysdeps/linux/common/setresuid.c


Changeset:
Modified: trunk/uClibc/libc/sysdeps/linux/common/setegid.c
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/common/setegid.c	2006-02-10 00:22:55 UTC (rev 13892)
+++ trunk/uClibc/libc/sysdeps/linux/common/setegid.c	2006-02-10 02:02:28 UTC (rev 13893)
@@ -11,7 +11,7 @@
 #include <sys/types.h>
 #include <sys/syscall.h>
 
-#if defined __NR_setresgid && defined __USE_GNU
+#if defined __NR_setresgid || defined __NR_setresgid32
 libc_hidden_proto(setresgid)
 #endif
 libc_hidden_proto(setregid)
@@ -26,7 +26,7 @@
 	return -1;
     }
 
-#if defined __NR_setresgid && defined __USE_GNU
+#if defined __NR_setresgid || defined __NR_setresgid32
     result = setresgid(-1, gid, -1);
     if (result == -1 && errno == ENOSYS)
 	/* Will also set the saved group ID if egid != gid,

Modified: trunk/uClibc/libc/sysdeps/linux/common/seteuid.c
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/common/seteuid.c	2006-02-10 00:22:55 UTC (rev 13892)
+++ trunk/uClibc/libc/sysdeps/linux/common/seteuid.c	2006-02-10 02:02:28 UTC (rev 13893)
@@ -13,7 +13,7 @@
 
 libc_hidden_proto(seteuid)
 
-#if defined __NR_setresuid && defined __USE_GNU
+#if defined __NR_setresuid || defined __NR_setresuid32
 libc_hidden_proto(setresuid)
 #endif
 libc_hidden_proto(setreuid)
@@ -28,7 +28,7 @@
 	return -1;
     }
 
-#if defined __NR_setresuid && defined __USE_GNU
+#if defined __NR_setresuid || defined __NR_setresuid32
     result = setresuid(-1, uid, -1);
     if (result == -1 && errno == ENOSYS)
 	/* Will also set the saved user ID if euid != uid,

Modified: trunk/uClibc/libc/sysdeps/linux/common/setresgid.c
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/common/setresgid.c	2006-02-10 00:22:55 UTC (rev 13892)
+++ trunk/uClibc/libc/sysdeps/linux/common/setresgid.c	2006-02-10 02:02:28 UTC (rev 13893)
@@ -10,10 +10,15 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#if defined __NR_setresgid && defined __USE_GNU
 libc_hidden_proto(setresgid)
 
-#define __NR___syscall_setresgid __NR_setresgid
+#if defined(__NR_setresgid32)
+# undef __NR_setresgid
+# define __NR_setresgid __NR_setresgid32
+_syscall3(int, setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
+
+#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);
 
@@ -27,5 +32,6 @@
 	}
 	return (__syscall_setresgid(rgid, egid, sgid));
 }
+#endif
+
 libc_hidden_def(setresgid)
-#endif

Modified: trunk/uClibc/libc/sysdeps/linux/common/setresuid.c
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/common/setresuid.c	2006-02-10 00:22:55 UTC (rev 13892)
+++ trunk/uClibc/libc/sysdeps/linux/common/setresuid.c	2006-02-10 02:02:28 UTC (rev 13893)
@@ -10,10 +10,15 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#if defined __NR_setresuid && defined __USE_GNU
 libc_hidden_proto(setresuid)
 
-#define __NR___syscall_setresuid __NR_setresuid
+#if defined(__NR_setresuid32)
+# undef __NR_setresuid
+# define __NR_setresuid __NR_setresuid32
+_syscall3(int, setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
+
+#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);
 
@@ -27,5 +32,6 @@
 	}
 	return (__syscall_setresuid(ruid, euid, suid));
 }
+#endif
+
 libc_hidden_def(setresuid)
-#endif




More information about the uClibc-cvs mailing list