[git commit ldso-future] dl-syscall.h: use newer common get[e]uid, get[e]gid and getpid

Peter S. Mazinger ps.m at gmx.net
Mon Apr 11 11:27:03 UTC 2011


commit: http://git.uclibc.org/uClibc/commit/?id=d21f59a4a02f3d274d6eb0cbba46409d3ab0ef71
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/ldso-future

Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
---
 ldso/include/dl-syscall.h           |   34 +++++-----------------------------
 libc/sysdeps/linux/common/getegid.c |    5 +++++
 libc/sysdeps/linux/common/geteuid.c |    5 +++++
 libc/sysdeps/linux/common/getgid.c  |    9 +++++++++
 libc/sysdeps/linux/common/getpid.c  |    7 ++++++-
 libc/sysdeps/linux/common/getuid.c  |    9 +++++++++
 6 files changed, 39 insertions(+), 30 deletions(-)

diff --git a/ldso/include/dl-syscall.h b/ldso/include/dl-syscall.h
index 0b1c6c2..9f4ac05 100644
--- a/ldso/include/dl-syscall.h
+++ b/ldso/include/dl-syscall.h
@@ -74,35 +74,11 @@ static __always_inline _syscall2(int, _dl_fstat, int, fd, struct stat *, buf)
 #define __NR__dl_munmap __NR_munmap
 static __always_inline _syscall2(int, _dl_munmap, void *, start, unsigned long, length)
 
-#ifdef __NR_getxuid
-# define __NR_getuid __NR_getxuid
-#endif
-#define __NR__dl_getuid __NR_getuid
-static __always_inline _syscall0(uid_t, _dl_getuid)
-
-#ifndef __NR_geteuid
-# define __NR_geteuid __NR_getuid
-#endif
-#define __NR__dl_geteuid __NR_geteuid
-static __always_inline _syscall0(uid_t, _dl_geteuid)
-
-#ifdef __NR_getxgid
-# define __NR_getgid __NR_getxgid
-#endif
-#define __NR__dl_getgid __NR_getgid
-static __always_inline _syscall0(gid_t, _dl_getgid)
-
-#ifndef __NR_getegid
-# define __NR_getegid __NR_getgid
-#endif
-#define __NR__dl_getegid __NR_getegid
-static __always_inline _syscall0(gid_t, _dl_getegid)
-
-#ifdef __NR_getxpid
-# define __NR_getpid __NR_getxpid
-#endif
-#define __NR__dl_getpid __NR_getpid
-static __always_inline _syscall0(gid_t, _dl_getpid)
+#include "../../libc/sysdeps/linux/common/getuid.c"
+#include "../../libc/sysdeps/linux/common/geteuid.c"
+#include "../../libc/sysdeps/linux/common/getgid.c"
+#include "../../libc/sysdeps/linux/common/getegid.c"
+#include "../../libc/sysdeps/linux/common/getpid.c"
 
 #define __NR__dl_readlink __NR_readlink
 static __always_inline _syscall3(int, _dl_readlink, const char *, path, char *, buf,
diff --git a/libc/sysdeps/linux/common/getegid.c b/libc/sysdeps/linux/common/getegid.c
index 80a8ac9..9e2998b 100644
--- a/libc/sysdeps/linux/common/getegid.c
+++ b/libc/sysdeps/linux/common/getegid.c
@@ -16,6 +16,11 @@
 #endif
 
 #ifdef __NR_getegid
+# ifdef IS_IN_rtld
+#  define __NR__dl_getegid __NR_getegid
+#  define getegid _dl_getegid
+static __always_inline
+# endif
 _syscall_noerr0(gid_t, getegid)
 libc_hidden_def(getegid)
 #endif
diff --git a/libc/sysdeps/linux/common/geteuid.c b/libc/sysdeps/linux/common/geteuid.c
index 610fbc1..4830c57 100644
--- a/libc/sysdeps/linux/common/geteuid.c
+++ b/libc/sysdeps/linux/common/geteuid.c
@@ -16,6 +16,11 @@
 #endif
 
 #ifdef __NR_geteuid
+# ifdef IS_IN_rtld
+#  define __NR__dl_geteuid __NR_geteuid
+#  define geteuid _dl_geteuid
+static __always_inline
+# endif
 _syscall_noerr0(uid_t, geteuid)
 libc_hidden_def(geteuid)
 #endif
diff --git a/libc/sysdeps/linux/common/getgid.c b/libc/sysdeps/linux/common/getgid.c
index ccfbfc0..868c9e1 100644
--- a/libc/sysdeps/linux/common/getgid.c
+++ b/libc/sysdeps/linux/common/getgid.c
@@ -19,9 +19,18 @@
 # define __NR_getgid __NR_getgid32
 #endif
 
+#ifdef IS_IN_rtld
+# define __NR__dl_getgid __NR_getgid
+# define getgid _dl_getgid
+static __always_inline
+#endif
 _syscall_noerr0(gid_t, getgid)
 libc_hidden_def(getgid)
 #if !defined __NR_getegid32 && !defined __NR_getegid
+# ifdef IS_IN_rtld
+#  define getegid _dl_getegid
+static __always_inline
+# endif
 strong_alias(getgid,getegid)
 libc_hidden_def(getegid)
 #endif
diff --git a/libc/sysdeps/linux/common/getpid.c b/libc/sysdeps/linux/common/getpid.c
index d9a6908..88ba680 100644
--- a/libc/sysdeps/linux/common/getpid.c
+++ b/libc/sysdeps/linux/common/getpid.c
@@ -15,8 +15,13 @@
 # define __NR_getpid __NR_getxpid
 #endif
 
+#ifdef IS_IN_rtld
+# define __NR__dl_getpid __NR_getpid
+# define getpid _dl_getpid
+static __always_inline
+#endif
 _syscall_noerr0(pid_t, getpid)
 libc_hidden_weak(getpid)
-#ifndef __NR_getppid
+#if !defined __NR_getppid && !defined IS_IN_rtld
 strong_alias(getpid,getppid)
 #endif
diff --git a/libc/sysdeps/linux/common/getuid.c b/libc/sysdeps/linux/common/getuid.c
index f921acb..b59bfac 100644
--- a/libc/sysdeps/linux/common/getuid.c
+++ b/libc/sysdeps/linux/common/getuid.c
@@ -19,9 +19,18 @@
 # define __NR_getuid __NR_getuid32
 #endif
 
+#ifdef IS_IN_rtld
+# define __NR__dl_getuid __NR_getuid
+# define getuid _dl_getuid
+static __always_inline
+#endif
 _syscall_noerr0(uid_t, getuid)
 libc_hidden_def(getuid)
 #if !defined __NR_geteuid32 && !defined __NR_geteuid
+# ifdef IS_IN_rtld
+#  define geteuid _dl_geteuid
+static __always_inline
+# endif
 strong_alias(getuid,geteuid)
 libc_hidden_def(geteuid)
 #endif
-- 
1.7.3.4



More information about the uClibc-cvs mailing list