This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.15-1060-ga823922


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  a82392228a31bb94b8dc4c35a37b04611d19891f (commit)
      from  918b56067a444572f1c71b02f18255ae4540b043 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a82392228a31bb94b8dc4c35a37b04611d19891f

commit a82392228a31bb94b8dc4c35a37b04611d19891f
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri May 25 22:30:06 2012 +0000

    Remove __ASSUME_NEW_GETRLIMIT_SYSCALL.

diff --git a/ChangeLog b/ChangeLog
index 9caa783..f97e481 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2012-05-25  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h
+	(__ASSUME_NEW_GETRLIMIT_SYSCALL): Remove all definitions.
+	* sysdeps/unix/sysv/linux/i386/getrlimit.c: Do not include
+	kernel-features.h.
+	[!__ASSUME_NEW_GETRLIMIT_SYSCALL]: Remove conditional code.
+	[__ASSUME_NEW_GETRLIMIT_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/i386/setrlimit.c Do not include
+	kernel-features.h.
+	[!__ASSUME_NEW_GETRLIMIT_SYSCALL]: Remove conditional code.
+	[__ASSUME_NEW_GETRLIMIT_SYSCALL]: Make code unconditional.
+
 2012-05-25  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* configure.in: Define the default includes to being none.
diff --git a/sysdeps/unix/sysv/linux/i386/getrlimit.c b/sysdeps/unix/sysv/linux/i386/getrlimit.c
index 21a2c00..e18f9de 100644
--- a/sysdeps/unix/sysv/linux/i386/getrlimit.c
+++ b/sysdeps/unix/sysv/linux/i386/getrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,58 +23,15 @@
 #include <shlib-compat.h>
 #include <bp-checks.h>
 
-#include <kernel-features.h>
-
 extern int __new_getrlimit (enum __rlimit_resource resource,
 			    struct rlimit *__unbounded rlimits);
 
-
-/* Linux 2.3.25 introduced a new system call since the types used for
-   the limits are now unsigned.  */
-#if defined __NR_ugetrlimit && !defined __ASSUME_NEW_GETRLIMIT_SYSCALL
-int __have_no_new_getrlimit;
-#endif
+/* Consider moving to syscalls.list.  */
 
 int
 __new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
 {
-#ifdef __ASSUME_NEW_GETRLIMIT_SYSCALL
   return INLINE_SYSCALL (ugetrlimit, 2, resource, CHECK_1 (rlimits));
-#else
-  int result;
-
-# ifdef __NR_ugetrlimit
-  if (__have_no_new_getrlimit <= 0)
-    {
-      result = INLINE_SYSCALL (ugetrlimit, 2, resource, CHECK_1 (rlimits));
-
-      /* If the system call is available remember this fact and return.  */
-      if (result != -1 || errno != ENOSYS)
-	{
-	  __have_no_new_getrlimit = -1;
-	  return result;
-	}
-
-      /* Remember that the system call is not available.  */
-      __have_no_new_getrlimit = 1;
-    }
-# endif
-
-  /* Fall back to the old system call.  */
-  result = INLINE_SYSCALL (getrlimit, 2, resource, CHECK_1 (rlimits));
-
-  if (result == -1)
-    return result;
-
-  /* We might have to correct the limits values.  Since the old values
-     were signed the infinity value is too small.  */
-  if (rlimits->rlim_cur == RLIM_INFINITY >> 1)
-    rlimits->rlim_cur = RLIM_INFINITY;
-  if (rlimits->rlim_max == RLIM_INFINITY >> 1)
-    rlimits->rlim_max = RLIM_INFINITY;
-
-  return result;
-#endif
 }
 
 weak_alias (__new_getrlimit, __getrlimit);
diff --git a/sysdeps/unix/sysv/linux/i386/setrlimit.c b/sysdeps/unix/sysv/linux/i386/setrlimit.c
index d6f904f..7683b85 100644
--- a/sysdeps/unix/sysv/linux/i386/setrlimit.c
+++ b/sysdeps/unix/sysv/linux/i386/setrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,53 +24,15 @@
 #include <shlib-compat.h>
 #include <bp-checks.h>
 
-#include <kernel-features.h>
-
 extern int __new_setrlimit (enum __rlimit_resource resource,
 			    const struct rlimit *__unboundedrlimits);
 
-/* Linux 2.3.25 introduced a new system call since the types used for
-   the limits are now unsigned.  */
-#if defined __NR_ugetrlimit && !defined __ASSUME_NEW_GETRLIMIT_SYSCALL
-extern int __have_no_new_getrlimit; /* from getrlimit.c */
-#endif
+/* Consider moving to syscalls.list.  */
 
 int
 __new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits)
 {
-#ifdef __ASSUME_NEW_GETRLIMIT_SYSCALL
   return INLINE_SYSCALL (setrlimit, 2, resource, CHECK_1 (rlimits));
-#else
-  struct rlimit rlimits_small;
-
-# ifdef __NR_ugetrlimit
-  if (__have_no_new_getrlimit == 0)
-    {
-      /* Check if the new ugetrlimit syscall exists.  We must do this
-	 first because older kernels don't reject negative rlimit
-	 values in setrlimit.  */
-      int result = INLINE_SYSCALL (ugetrlimit, 2, resource, __ptrvalue (&rlimits_small));
-      if (result != -1 || errno != ENOSYS)
-	/* The syscall exists.  */
-	__have_no_new_getrlimit = -1;
-      else
-	/* The syscall does not exist.  */
-	__have_no_new_getrlimit = 1;
-    }
-  if (__have_no_new_getrlimit < 0)
-    return INLINE_SYSCALL (setrlimit, 2, resource, CHECK_1 (rlimits));
-# endif
-
-  /* We might have to correct the limits values.  Since the old values
-     were signed the new values might be too large.  */
-  rlimits_small.rlim_cur = MIN ((unsigned long int) rlimits->rlim_cur,
-				RLIM_INFINITY >> 1);
-  rlimits_small.rlim_max = MIN ((unsigned long int) rlimits->rlim_max,
-				RLIM_INFINITY >> 1);
-
-  /* Use the adjusted values.  */
-  return INLINE_SYSCALL (setrlimit, 2, resource, __ptrvalue (&rlimits_small));
-#endif
 }
 
 weak_alias (__new_setrlimit, __setrlimit);
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index fd2f1db..0ea453d 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -40,11 +40,6 @@
 /* The sendfile syscall was introduced in 2.2.0.  */
 #define __ASSUME_SENDFILE		1
 
-/* On x86 another `getrlimit' syscall was added in 2.3.25.  */
-#ifdef __i386__
-# define __ASSUME_NEW_GETRLIMIT_SYSCALL	1
-#endif
-
 /* On x86 the truncate64/ftruncate64 syscalls were introduced in 2.3.31.  */
 #ifdef __i386__
 # define __ASSUME_TRUNCATE64_SYSCALL	1
@@ -68,11 +63,6 @@
 # define __ASSUME_STAT64_SYSCALL	1
 #endif
 
-/* I know for sure that getrlimit are in 2.3.35 on powerpc.  */
-#ifdef __powerpc__
-# define __ASSUME_NEW_GETRLIMIT_SYSCALL	1
-#endif
-
 /* I know for sure that these are in 2.3.35 on powerpc. But PowerPC64 does not
    support separate 64-bit syscalls, already 64-bit.  */
 #if defined __powerpc__ && !defined __powerpc64__

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                 |   13 ++++++++
 sysdeps/unix/sysv/linux/i386/getrlimit.c  |   47 +---------------------------
 sysdeps/unix/sysv/linux/i386/setrlimit.c  |   42 +------------------------
 sysdeps/unix/sysv/linux/kernel-features.h |   10 ------
 4 files changed, 17 insertions(+), 95 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]