Document new tristate __libc_missing_32bit_uids.
authordrepper <drepper>
Fri, 11 Feb 2000 19:42:14 +0000 (19:42 +0000)
committerdrepper <drepper>
Fri, 11 Feb 2000 19:42:14 +0000 (19:42 +0000)
Use 32bit uid syscall if __libc_missing_32bit_uids is -1 or 0.

18 files changed:
sysdeps/unix/sysv/linux/i386/chown.c
sysdeps/unix/sysv/linux/i386/fchown.c
sysdeps/unix/sysv/linux/i386/getegid.c
sysdeps/unix/sysv/linux/i386/geteuid.c
sysdeps/unix/sysv/linux/i386/getgid.c
sysdeps/unix/sysv/linux/i386/getgroups.c
sysdeps/unix/sysv/linux/i386/getuid.c
sysdeps/unix/sysv/linux/i386/lchown.c
sysdeps/unix/sysv/linux/i386/setfsgid.c
sysdeps/unix/sysv/linux/i386/setfsuid.c
sysdeps/unix/sysv/linux/i386/setgid.c
sysdeps/unix/sysv/linux/i386/setgroups.c
sysdeps/unix/sysv/linux/i386/setregid.c
sysdeps/unix/sysv/linux/i386/setresgid.c
sysdeps/unix/sysv/linux/i386/setresuid.c
sysdeps/unix/sysv/linux/i386/setreuid.c
sysdeps/unix/sysv/linux/i386/setuid.c
sysdeps/unix/sysv/linux/m68k/chown.c

index 8652d0f..f6442a4 100644 (file)
@@ -63,7 +63,7 @@ __real_chown (const char *file, uid_t owner, gid_t group)
     {
       int saved_errno = errno;
 #  ifdef __NR_chown32
     {
       int saved_errno = errno;
 #  ifdef __NR_chown32
-      if (!__libc_missing_32bit_uids)
+      if (__libc_missing_32bit_uids <= 0)
        {
          int result;
          int saved_errno = errno;
        {
          int result;
          int saved_errno = errno;
@@ -99,7 +99,7 @@ __real_chown (const char *file, uid_t owner, gid_t group)
 # else
   /* !__ASSUME_32BITUIDS && ASSUME_LCHOWN_SYSCALL  */
 #  ifdef __NR_chown32
 # else
   /* !__ASSUME_32BITUIDS && ASSUME_LCHOWN_SYSCALL  */
 #  ifdef __NR_chown32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 5a84d41..f330bbb 100644 (file)
@@ -45,7 +45,7 @@ __fchown (int fd, uid_t owner, gid_t group)
   return INLINE_SYSCALL (fchown32, 3, fd, owner, group);
 #else
 # ifdef __NR_fchown32
   return INLINE_SYSCALL (fchown32, 3, fd, owner, group);
 #else
 # ifdef __NR_fchown32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 05dd15d..3926af3 100644 (file)
@@ -41,7 +41,7 @@ __getegid (void)
   return INLINE_SYSCALL (getegid32, 0);
 #else
 # ifdef __NR_getegid32
   return INLINE_SYSCALL (getegid32, 0);
 #else
 # ifdef __NR_getegid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index e2f932a..f97fd83 100644 (file)
@@ -41,7 +41,7 @@ __geteuid (void)
   return INLINE_SYSCALL (geteuid32, 0);
 #else
 # ifdef __NR_geteuid32
   return INLINE_SYSCALL (geteuid32, 0);
 #else
 # ifdef __NR_geteuid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 19794aa..643abe2 100644 (file)
@@ -42,7 +42,7 @@ __getgid (void)
   return INLINE_SYSCALL (getgid32, 0);
 #else
 # ifdef __NR_getgid32
   return INLINE_SYSCALL (getgid32, 0);
 #else
 # ifdef __NR_getgid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 4ada764..071be4f 100644 (file)
@@ -56,7 +56,7 @@ __getgroups (int n, gid_t *groups)
       int i, ngids;
       __kernel_gid_t kernel_groups[n = MIN (n, __sysconf (_SC_NGROUPS_MAX))];
 # ifdef __NR_getgroups32
       int i, ngids;
       __kernel_gid_t kernel_groups[n = MIN (n, __sysconf (_SC_NGROUPS_MAX))];
 # ifdef __NR_getgroups32
-      if (!__libc_missing_32bit_uids)
+      if (__libc_missing_32bit_uids <= 0)
        {
          int result;
          int saved_errno = errno;
        {
          int result;
          int saved_errno = errno;
index d160e44..97fd273 100644 (file)
@@ -30,8 +30,11 @@ extern int __syscall_getuid (void);
 extern int __syscall_getuid32 (void);
 # if __ASSUME_32BITUIDS == 0
 /* This variable is shared with all files that need to check for 32bit
 extern int __syscall_getuid32 (void);
 # if __ASSUME_32BITUIDS == 0
 /* This variable is shared with all files that need to check for 32bit
-   uids.  This is the definition */
-int __libc_missing_32bit_uids;
+   uids.  This is the definition.
+   -1 if libc does not know yet whether kernel has 32bit uids or not.
+   0 if it does have them.
+   1 if it does not have them.  */
+int __libc_missing_32bit_uids = -1;
 # endif
 #endif /* __NR_getuid32 */
 
 # endif
 #endif /* __NR_getuid32 */
 
@@ -42,7 +45,7 @@ __getuid (void)
   return INLINE_SYSCALL (getuid32, 0);
 #else
 # ifdef __NR_getuid32
   return INLINE_SYSCALL (getuid32, 0);
 #else
 # ifdef __NR_getuid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 2d8e8fb..6e2bb9d 100644 (file)
@@ -46,7 +46,7 @@ __lchown (const char *file, uid_t owner, gid_t group)
   return INLINE_SYSCALL (lchown32, 3, file, owner, group);
 # else
 #  ifdef __NR_lchown32
   return INLINE_SYSCALL (lchown32, 3, file, owner, group);
 # else
 #  ifdef __NR_lchown32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 6fd7e46..9d4d475 100644 (file)
@@ -46,7 +46,7 @@ setfsgid (gid_t gid)
   return INLINE_SYSCALL (setfsgid32, 1, gid);
 # else
 #  ifdef __NR_setfsgid32
   return INLINE_SYSCALL (setfsgid32, 1, gid);
 # else
 #  ifdef __NR_setfsgid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index cf7bc16..6491f9e 100644 (file)
@@ -46,7 +46,7 @@ setfsuid (uid_t uid)
   return INLINE_SYSCALL (setfsuid32, 1, uid);
 # else  
 #  ifdef __NR_setfsuid32
   return INLINE_SYSCALL (setfsuid32, 1, uid);
 # else  
 #  ifdef __NR_setfsuid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 2a81302..6d64cc8 100644 (file)
@@ -45,7 +45,7 @@ __setgid (gid_t gid)
   return INLINE_SYSCALL (setgid32, 1, gid);
 #else
 # ifdef __NR_setgid32
   return INLINE_SYSCALL (setgid32, 1, gid);
 #else
 # ifdef __NR_setgid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index eb02350..81f938d 100644 (file)
@@ -57,7 +57,7 @@ setgroups (size_t n, const gid_t *groups)
       size_t i;
       __kernel_gid_t kernel_groups[n];
 # ifdef __NR_setgroups32
       size_t i;
       __kernel_gid_t kernel_groups[n];
 # ifdef __NR_setgroups32
-      if (!__libc_missing_32bit_uids)
+      if (__libc_missing_32bit_uids <= 0)
        {
          int result;
          int saved_errno = errno;
        {
          int result;
          int saved_errno = errno;
index b4d0a2a..1d810cd 100644 (file)
@@ -45,7 +45,7 @@ __setregid (gid_t rgid, gid_t egid)
   return INLINE_SYSCALL (setregid32, 2, rgid, egid);
 #else
 # ifdef __NR_setregid32
   return INLINE_SYSCALL (setregid32, 2, rgid, egid);
 #else
 # ifdef __NR_setregid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 97bb974..51ee214 100644 (file)
@@ -48,7 +48,7 @@ setresgid (gid_t rgid, gid_t egid, gid_t sgid)
   return INLINE_SYSCALL (setresgid32, 3, rgid, egid, sgid);
 # else
 #  ifdef __NR_setresgid32
   return INLINE_SYSCALL (setresgid32, 3, rgid, egid, sgid);
 # else
 #  ifdef __NR_setresgid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 94fc79b..e5723a0 100644 (file)
@@ -48,7 +48,7 @@ __setresuid (uid_t ruid, uid_t euid, uid_t suid)
   return INLINE_SYSCALL (setresuid32, 3, ruid, euid, suid);
 # else
 #  ifdef __NR_setresuid32
   return INLINE_SYSCALL (setresuid32, 3, ruid, euid, suid);
 # else
 #  ifdef __NR_setresuid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index b660604..b7ffbe0 100644 (file)
@@ -45,7 +45,7 @@ __setreuid (uid_t ruid, uid_t euid)
   return INLINE_SYSCALL (setreuid32, 2, ruid, euid);
 #else
 # ifdef __NR_setreuid32
   return INLINE_SYSCALL (setreuid32, 2, ruid, euid);
 #else
 # ifdef __NR_setreuid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index ed0d8fa..c93185a 100644 (file)
@@ -44,7 +44,7 @@ __setuid (uid_t uid)
   return INLINE_SYSCALL (setuid32, 1, uid);
 #else
 # ifdef __NR_setuid32
   return INLINE_SYSCALL (setuid32, 1, uid);
 #else
 # ifdef __NR_setuid32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;
index 4e7625c..79701ee 100644 (file)
@@ -45,7 +45,7 @@ __chown (const char *file, uid_t owner, gid_t group)
   return INLINE_SYSCALL (chown32, 3, file, owner, group);
 #else
 # ifdef __NR_chown32
   return INLINE_SYSCALL (chown32, 3, file, owner, group);
 #else
 # ifdef __NR_chown32
-  if (!__libc_missing_32bit_uids)
+  if (__libc_missing_32bit_uids <= 0)
     {
       int result;
       int saved_errno = errno;
     {
       int result;
       int saved_errno = errno;