[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r20182 - in /fsf/trunk/libc: ./ bits/ elf/ inet/ nptl/ nptl/sysdeps/unix/sysv/linux/ nptl/sysdeps/unix/sysv/linux/i386/i486/...



Author: eglibc
Date: Fri Aug 17 00:01:45 2012
New Revision: 20182

Log:
Import glibc-mainline for 2012-08-17

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/bits/libc-lock.h
    fsf/trunk/libc/elf/dl-load.c
    fsf/trunk/libc/elf/dl-sym.c
    fsf/trunk/libc/inet/getnetgrent_r.c
    fsf/trunk/libc/inet/netgroup.h
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/pthread_cond_timedwait.c
    fsf/trunk/libc/nptl/pthread_condattr_setclock.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_create.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_delete.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_gettime.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_routines.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_settime.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
    fsf/trunk/libc/ports/ChangeLog.alpha
    fsf/trunk/libc/ports/ChangeLog.ia64
    fsf/trunk/libc/ports/ChangeLog.mips
    fsf/trunk/libc/ports/sysdeps/alpha/ldsodefs.h
    fsf/trunk/libc/ports/sysdeps/ia64/ldsodefs.h
    fsf/trunk/libc/ports/sysdeps/mips/ldsodefs.h
    fsf/trunk/libc/stdio-common/_itoa.c
    fsf/trunk/libc/stdio-common/_itowa.c
    fsf/trunk/libc/stdlib/divmod_1.c
    fsf/trunk/libc/stdlib/gmp-impl.h
    fsf/trunk/libc/stdlib/longlong.h
    fsf/trunk/libc/stdlib/mod_1.c
    fsf/trunk/libc/sysdeps/sh/ldsodefs.h
    fsf/trunk/libc/sysdeps/sparc/ldsodefs.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getres.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_gettime.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_nanosleep.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_settime.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Aug 17 00:01:45 2012
@@ -1,4 +1,70 @@
+2012-08-16  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* inet/getnetgrent_r.c (internal_setnetgrent): Renamed to ...
+	(__internal_setnetgrent): ... this.  Add internal_function to
+	definition.  Add libc_hidden_def.
+	(setnetgrent): Update caller.
+	(internal_endnetgrent): Renamed to ...
+	(__internal_endnetgrent): ... this.  Add internal_function to
+	definition.  Add libc_hidden_def.
+	(endnetgrent): Update caller.
+	(internal_getnetgrent_r): Renamed to ...
+	(__internal_getnetgrent_r): ... this.  Add internal_function to
+	definition.  Add libc_hidden_def.
+	(__getnetgrent_r): Update caller.
+	* inet/netgroup.h: Update declarations.  Add libc_hidden_proto uses.
+
+2012-08-16  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* stdlib/longlong.h: Update from GCC.
+
+2012-08-16  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* stdlib/gmp-impl.h (udiv_qrnnd_preinv): Use __attribute__ ((unused))
+	on _QL, which is set by umul_ppmm but never used.
+	* stdio-common/_itoa.c (_itoa): Use __attribute__ ((unused)) on DUMMY
+	variables, which are set by GMP macros but never used.
+	* stdio-common/_itowa.c (_itowa): Likewise.
+	* stdlib/divmod_1.c (mpn_divmod_1): Likewise.
+	* stdlib/mod_1.c (mpn_mod_1): Likewise.
+
+2012-08-16  Carlos O'Donell  <carlos_odonell@xxxxxxxxxx>
+
+	* sysdeps/sh/ldsodefs.h (ARCH_PLTENTER_MEMBERS) <sh_gnu_pltenter>:
+	struct La_sh_regs is not constant.
+	* sysdeps/sparc/ldsodefs.h (ARCH_PLTENTER_MEMBERS)
+	<sparc32_gnu_pltenter, sparc64_gnu_pltenter>: struct La_sparc32_regs
+	and struct La_sparc64_regs are not constant.
+
+2012-08-16  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h
+	(__ASSUME_POSIX_TIMERS): Remove.
+	* sysdeps/unix/sysv/linux/clock_getcpuclockid.c
+	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/clock_getres.c [__ASSUME_POSIX_TIMERS]:
+	Make code unconditional.
+	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/clock_gettime.c [__ASSUME_POSIX_TIMERS]:
+	Make code unconditional.
+	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/clock_nanosleep.c
+	[__ASSUME_POSIX_TIMERS]: Make code unconditional.
+	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/clock_settime.c [__ASSUME_POSIX_TIMERS]:
+	Make code unconditional.
+	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
+	[__ASSUME_POSIX_CPU_TIMERS <= 0 && __NR_clock_settime]
+	(__libc_missing_posix_timers): Remove.
+
 2012-08-15  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* elf/dl-load.c (_dl_map_object_from_fd) [SHARED]: Conditionalize
+	check of GL(dl_error_catch_tsd) on [_LIBC_REENTRANT].
+
+	* bits/libc-lock.h (__rtld_lock_initialize): New macro.
+
+	* elf/dl-sym.c: Include <stdlib.h>.
 
 	* posix/regcomp.c (init_word_char): Use temporaries to hold the 64-bit
 	constants, which avoids warnings in 32-bit builds.

Modified: fsf/trunk/libc/bits/libc-lock.h
==============================================================================
--- fsf/trunk/libc/bits/libc-lock.h (original)
+++ fsf/trunk/libc/bits/libc-lock.h Fri Aug 17 00:01:45 2012
@@ -44,6 +44,7 @@
 /* Initialize the named lock variable, leaving it in a consistent, unlocked
    state.  */
 #define __libc_lock_init(NAME)
+#define __rtld_lock_initialize(NAME)
 #define __libc_rwlock_init(NAME)
 
 /* Same as last but this time we initialize a recursive mutex.  */

Modified: fsf/trunk/libc/elf/dl-load.c
==============================================================================
--- fsf/trunk/libc/elf/dl-load.c (original)
+++ fsf/trunk/libc/elf/dl-load.c Fri Aug 17 00:01:45 2012
@@ -1194,9 +1194,11 @@
 	       was executed directly.  The setup will happen later.  */
 	    break;
 
+# ifdef _LIBC_REENTRANT
 	  /* In a static binary there is no way to tell if we dynamically
 	     loaded libpthread.  */
 	  if (GL(dl_error_catch_tsd) == &_dl_initial_error_catch_tsd)
+# endif
 #endif
 	    {
 	      /* We have not yet loaded libpthread.

Modified: fsf/trunk/libc/elf/dl-sym.c
==============================================================================
--- fsf/trunk/libc/elf/dl-sym.c (original)
+++ fsf/trunk/libc/elf/dl-sym.c Fri Aug 17 00:01:45 2012
@@ -1,5 +1,5 @@
 /* Look up a symbol in a shared object loaded by `dlopen'.
-   Copyright (C) 1999-2002,2004,2006,2007,2009 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
@@ -19,6 +19,7 @@
 #include <assert.h>
 #include <stddef.h>
 #include <setjmp.h>
+#include <stdlib.h>
 #include <libintl.h>
 
 #include <dlfcn.h>

Modified: fsf/trunk/libc/inet/getnetgrent_r.c
==============================================================================
--- fsf/trunk/libc/inet/getnetgrent_r.c (original)
+++ fsf/trunk/libc/inet/getnetgrent_r.c Fri Aug 17 00:01:45 2012
@@ -171,19 +171,16 @@
   return status == NSS_STATUS_SUCCESS;
 }
 
-int internal_setnetgrent (const char *group, struct __netgrent *datap);
-libc_hidden_proto (internal_setnetgrent)
-
 int
-internal_setnetgrent (const char *group, struct __netgrent *datap)
+internal_function
+__internal_setnetgrent (const char *group, struct __netgrent *datap)
 {
   /* Free list of all netgroup names from last run.  */
   free_memory (datap);
 
   return __internal_setnetgrent_reuse (group, datap, &errno);
 }
-libc_hidden_def (internal_setnetgrent)
-strong_alias (internal_setnetgrent, __internal_setnetgrent)
+libc_hidden_def (__internal_setnetgrent)
 
 int
 setnetgrent (const char *group)
@@ -204,7 +201,7 @@
 	goto out;
     }
 
-  result = internal_setnetgrent (group, &dataset);
+  result = __internal_setnetgrent (group, &dataset);
 
  out:
   __libc_lock_unlock (lock);
@@ -212,18 +209,15 @@
   return result;
 }
 
-void internal_endnetgrent (struct __netgrent *datap);
-libc_hidden_proto (internal_endnetgrent)
-
 void
-internal_endnetgrent (struct __netgrent *datap)
+internal_function
+__internal_endnetgrent (struct __netgrent *datap)
 {
   endnetgrent_hook (datap);
   /* Now free list of all netgroup names from last run.  */
   free_memory (datap);
 }
-libc_hidden_def (internal_endnetgrent)
-strong_alias (internal_endnetgrent, __internal_endnetgrent)
+libc_hidden_def (__internal_endnetgrent)
 
 
 void
@@ -231,16 +225,10 @@
 {
   __libc_lock_lock (lock);
 
-  internal_endnetgrent (&dataset);
+  __internal_endnetgrent (&dataset);
 
   __libc_lock_unlock (lock);
 }
-
-
-int internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
-			    struct __netgrent *datap,
-			    char *buffer, size_t buflen, int *errnop);
-libc_hidden_proto (internal_getnetgrent_r)
 
 
 static enum nss_status
@@ -263,7 +251,8 @@
 
 
 int
-internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
+internal_function
+__internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
 			  struct __netgrent *datap,
 			  char *buffer, size_t buflen, int *errnop)
 {
@@ -361,8 +350,7 @@
 
   return status == NSS_STATUS_SUCCESS ? 1 : 0;
 }
-libc_hidden_def (internal_getnetgrent_r)
-strong_alias (internal_getnetgrent_r, __internal_getnetgrent_r)
+libc_hidden_def (__internal_getnetgrent_r)
 
 /* The real entry point.  */
 int
@@ -373,8 +361,8 @@
 
   __libc_lock_lock (lock);
 
-  status = internal_getnetgrent_r (hostp, userp, domainp, &dataset,
-				   buffer, buflen, &errno);
+  status = __internal_getnetgrent_r (hostp, userp, domainp, &dataset,
+                                     buffer, buflen, &errno);
 
   __libc_lock_unlock (lock);
 

Modified: fsf/trunk/libc/inet/netgroup.h
==============================================================================
--- fsf/trunk/libc/inet/netgroup.h (original)
+++ fsf/trunk/libc/inet/netgroup.h Fri Aug 17 00:01:45 2012
@@ -1,5 +1,5 @@
 /* Internal header for netgroup related functions.
-   Copyright (C) 1996, 1997, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1996-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
@@ -70,10 +70,16 @@
 
 /* The internal netgroup handling functions might be called from outside.  */
 extern int __internal_setnetgrent (const char *group,
-				   struct __netgrent *datap);
-extern void __internal_endnetgrent (struct __netgrent *datap);
+				   struct __netgrent *datap)
+  internal_function;
+libc_hidden_proto (__internal_setnetgrent)
+extern void __internal_endnetgrent (struct __netgrent *datap)
+  internal_function;
+libc_hidden_proto (__internal_endnetgrent)
 extern int __internal_getnetgrent_r (char **hostp, char **userp,
 				     char **domainp, struct __netgrent *datap,
-				     char *buffer, size_t buflen, int *errnop);
+				     char *buffer, size_t buflen, int *errnop)
+  internal_function;
+libc_hidden_proto (__internal_getnetgrent_r)
 
 #endif /* netgroup.h */

Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Fri Aug 17 00:01:45 2012
@@ -1,3 +1,42 @@
+2012-08-16  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* pthread_cond_timedwait.c (__pthread_cond_timedwait)
+	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
+	* pthread_condattr_setclock.c (pthread_condattr_setclock)
+	[!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+	(__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
+	[!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
+	(__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/timer_create.c [__NR_timer_create]: Make
+	code unconditional.
+	[!__NR-timer_create]: Remove conditional code.
+	(timer_create) [!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/timer_delete.c [__NR_timer_delete]: Make
+	code unconditional.
+	[!__NR_timer_delete]: Remove conditional code.
+	(timer_delete) [!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/timer_getoverr.c
+	[__NR_timer_getoverrun]: Make code unconditional.
+	[!__NR_timer_getoverrun]: Remove conditional code.
+	(timer_getoverrun) [!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/timer_gettime.c [__NR_timer_gettime]:
+	Make code unconditional.
+	[!__NR_timer_gettime]: Remove conditional code.
+	(timer_gettime) [!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/timer_routines.c [__NR_timer_create]:
+	Make code unconditional.
+	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/timer_settime.c [__NR_timer_settime]:
+	Make code unconditional.
+	[!__NR_timer_settime]: Remove conditional code.
+	(timer_settime) [!__ASSUME_POSIX_TIMERS]: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+	(__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Remove
+	conditional code.
+
 2012-08-15  Tom de Vries  <vries@xxxxxxxxxxxxxxxx>
 	    Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>
 

Modified: fsf/trunk/libc/nptl/pthread_cond_timedwait.c
==============================================================================
--- fsf/trunk/libc/nptl/pthread_cond_timedwait.c (original)
+++ fsf/trunk/libc/nptl/pthread_cond_timedwait.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003,2004,2007,2010,2011 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Martin Schwidefsky <schwidefsky@xxxxxxxxxx>, 2003.
 
@@ -113,23 +113,9 @@
 				(cond->__data.__nwaiters
 				 & ((1 << COND_NWAITERS_SHIFT) - 1)),
 				&rt);
-# ifndef __ASSUME_POSIX_TIMERS
-	if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (ret, err), 0))
-	  {
-	    struct timeval tv;
-	    (void) gettimeofday (&tv, NULL);
-
-	    /* Convert the absolute timeout value to a relative timeout.  */
-	    rt.tv_sec = abstime->tv_sec - tv.tv_sec;
-	    rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
-	  }
-	else
-# endif
-	  {
-	    /* Convert the absolute timeout value to a relative timeout.  */
-	    rt.tv_sec = abstime->tv_sec - rt.tv_sec;
-	    rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
-	  }
+	/* Convert the absolute timeout value to a relative timeout.  */
+	rt.tv_sec = abstime->tv_sec - rt.tv_sec;
+	rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
 #else
 	/* Get the current time.  So far we support only one clock.  */
 	struct timeval tv;

Modified: fsf/trunk/libc/nptl/pthread_condattr_setclock.c
==============================================================================
--- fsf/trunk/libc/nptl/pthread_condattr_setclock.c (original)
+++ fsf/trunk/libc/nptl/pthread_condattr_setclock.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2003.
 
@@ -30,32 +30,8 @@
      pthread_condattr_t *attr;
      clockid_t clock_id;
 {
-  /* Only a few clocks are allowed.  CLOCK_REALTIME is always allowed.
-     CLOCK_MONOTONIC only if the kernel has the necessary support.  */
-  if (clock_id == CLOCK_MONOTONIC)
-    {
-#ifndef __ASSUME_POSIX_TIMERS
-# ifdef __NR_clock_getres
-      /* Check whether the clock is available.  */
-      static int avail;
-
-      if (avail == 0)
-	{
-	  struct timespec ts;
-
-	  INTERNAL_SYSCALL_DECL (err);
-	  int val;
-	  val = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
-	  avail = INTERNAL_SYSCALL_ERROR_P (val, err) ? -1 : 1;
-	}
-
-      if (avail < 0)
-# endif
-	/* Not available.  */
-	return EINVAL;
-#endif
-    }
-  else if (clock_id != CLOCK_REALTIME)
+  /* Only a few clocks are allowed.  */
+  if (clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_REALTIME)
     /* If more clocks are allowed some day the storing of the clock ID
        in the pthread_cond_t structure needs to be adjusted.  */
     return EINVAL;

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S Fri Aug 17 00:01:45 2012
@@ -122,10 +122,6 @@
 	leal	4(%esp), %ecx
 	movl	$__NR_clock_gettime, %eax
 	ENTER_KERNEL
-# ifndef __ASSUME_POSIX_TIMERS
-	cmpl	$-ENOSYS, %eax
-	je	19f
-# endif
 	movl	%edx, %ebx
 
 	/* Compute relative timeout.  */
@@ -482,30 +478,6 @@
 	call	__lll_unlock_wake
 	jmp	11b
 
-#if defined __NR_clock_gettime && !defined __ASSUME_POSIX_TIMERS
-	/* clock_gettime not available.  */
-19:	leal	4(%esp), %ebx
-	xorl	%ecx, %ecx
-	movl	$__NR_gettimeofday, %eax
-	ENTER_KERNEL
-	movl	%edx, %ebx
-
-	/* Compute relative timeout.  */
-	movl	8(%esp), %eax
-	movl	$1000, %edx
-	mul	%edx		/* Milli seconds to nano seconds.  */
-	movl	(%ebp), %ecx
-	movl	4(%ebp), %edx
-	subl	4(%esp), %ecx
-	subl	%eax, %edx
-	jns	20f
-	addl	$1000000000, %edx
-	subl	$1, %ecx
-20:	testl	%ecx, %ecx
-	movl	$-ETIMEDOUT, %esi
-	js	6b
-	jmp	21b
-#endif
 	.size	__pthread_cond_timedwait, .-__pthread_cond_timedwait
 versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
 		  GLIBC_2_3_2)

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c Fri Aug 17 00:01:45 2012
@@ -1,5 +1,5 @@
 /* pthread_getcpuclockid -- Get POSIX clockid_t for a pthread_t.  Linux version
-   Copyright (C) 2000,2001,2002,2003,2004,2005 Free Software Foundation, Inc.
+   Copyright (C) 2000-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
@@ -27,9 +27,6 @@
 #if !(__ASSUME_POSIX_CPU_TIMERS > 0)
 int __libc_missing_posix_cpu_timers attribute_hidden;
 #endif
-#if !(__ASSUME_POSIX_TIMERS > 0)
-int __libc_missing_posix_timers attribute_hidden;
-#endif
 
 int
 pthread_getcpuclockid (threadid, clockid)
@@ -51,10 +48,6 @@
   const clockid_t tidclock = MAKE_THREAD_CPUCLOCK (pd->tid, CPUCLOCK_SCHED);
 
 # if !(__ASSUME_POSIX_CPU_TIMERS > 0)
-#  if !(__ASSUME_POSIX_TIMERS > 0)
-  if (__libc_missing_posix_timers && !__libc_missing_posix_cpu_timers)
-    __libc_missing_posix_cpu_timers = 1;
-#  endif
   if (!__libc_missing_posix_cpu_timers)
     {
       INTERNAL_SYSCALL_DECL (err);
@@ -67,20 +60,11 @@
 	}
 
 # if !(__ASSUME_POSIX_CPU_TIMERS > 0)
-#  if !(__ASSUME_POSIX_TIMERS > 0)
-      if (INTERNAL_SYSCALL_ERRNO (r, err) == ENOSYS)
+      if (INTERNAL_SYSCALL_ERRNO (r, err) == EINVAL)
 	{
-	  /* The kernel doesn't support these calls at all.  */
-	  __libc_missing_posix_timers = 1;
+	  /* The kernel doesn't support these clocks at all.  */
 	  __libc_missing_posix_cpu_timers = 1;
 	}
-      else
-#  endif
-	if (INTERNAL_SYSCALL_ERRNO (r, err) == EINVAL)
-	  {
-	    /* The kernel doesn't support these clocks at all.  */
-	    __libc_missing_posix_cpu_timers = 1;
-	  }
       else
 	return INTERNAL_SYSCALL_ERRNO (r, err);
     }

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S Fri Aug 17 00:01:45 2012
@@ -158,10 +158,6 @@
 	mov.w	.L__NR_clock_gettime, r3
 	trapa	#0x12
 	SYSCALL_INST_PAD
-# ifndef __ASSUME_POSIX_TIMERS
-	cmp/eq	#-ENOSYS, r0
-	bt	19f
-# endif
 
 	/* Compute relative timeout.  */
 	mov.l	@r13, r2
@@ -172,24 +168,6 @@
 .L__NR_clock_gettime:
 	.word	__NR_clock_gettime
 
-# ifndef __ASSUME_POSIX_TIMERS
-19:	
-	mov	r15, r4
-	add	#16, r4
-	mov	#0, r5
-	mov	#__NR_gettimeofday, r3
-	trapa	#0x12
-	SYSCALL_INST_PAD
-
-	/* Compute relative timeout.  */
-	mov.l	@(20,r15), r0
-	mov.w	.L1k, r1
-	dmulu.l	r0, r1		/* Micro seconds to nano seconds.  */
-	mov.l	@r13, r2
-	mov.l	@(4,r13), r3
-	mov.l	@(16,r15), r0
-	sts	macl, r1
-#endif
 0:	
 #else
 	mov	r15, r4

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_create.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_create.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_create.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003,2004, 2007, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2003.
 
@@ -30,21 +30,9 @@
 #include "kernel-posix-cpu-timers.h"
 
 
-#ifdef __NR_timer_create
-# ifndef __ASSUME_POSIX_TIMERS
-static int compat_timer_create (clockid_t clock_id, struct sigevent *evp,
-				timer_t *timerid);
-#  define timer_create static compat_timer_create
-#  include <nptl/sysdeps/pthread/timer_create.c>
-#  undef timer_create
-
-/* Nonzero if the system calls are not available.  */
-int __no_posix_timers attribute_hidden;
-# endif
-
-# ifdef timer_create_alias
-#  define timer_create timer_create_alias
-# endif
+#ifdef timer_create_alias
+# define timer_create timer_create_alias
+#endif
 
 
 int
@@ -53,190 +41,140 @@
      struct sigevent *evp;
      timer_t *timerid;
 {
-# undef timer_create
-# ifndef __ASSUME_POSIX_TIMERS
-  if  (__no_posix_timers >= 0)
-# endif
-    {
-      clockid_t syscall_clockid = (clock_id == CLOCK_PROCESS_CPUTIME_ID
-				   ? MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
-				   : clock_id == CLOCK_THREAD_CPUTIME_ID
-				   ? MAKE_THREAD_CPUCLOCK (0, CPUCLOCK_SCHED)
-				   : clock_id);
+#undef timer_create
+  {
+    clockid_t syscall_clockid = (clock_id == CLOCK_PROCESS_CPUTIME_ID
+				 ? MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
+				 : clock_id == CLOCK_THREAD_CPUTIME_ID
+				 ? MAKE_THREAD_CPUCLOCK (0, CPUCLOCK_SCHED)
+				 : clock_id);
 
-      /* If the user wants notification via a thread we need to handle
-	 this special.  */
-      if (evp == NULL
-	  || __builtin_expect (evp->sigev_notify != SIGEV_THREAD, 1))
-	{
-	  struct sigevent local_evp;
+    /* If the user wants notification via a thread we need to handle
+       this special.  */
+    if (evp == NULL
+	|| __builtin_expect (evp->sigev_notify != SIGEV_THREAD, 1))
+      {
+	struct sigevent local_evp;
 
-	  /* We avoid allocating too much memory by basically
-	     using struct timer as a derived class with the
-	     first two elements being in the superclass.  We only
-	     need these two elements here.  */
-	  struct timer *newp = (struct timer *) malloc (offsetof (struct timer,
-								  thrfunc));
-	  if (newp == NULL)
-	    /* No more memory.  */
+	/* We avoid allocating too much memory by basically
+	   using struct timer as a derived class with the
+	   first two elements being in the superclass.  We only
+	   need these two elements here.  */
+	struct timer *newp = (struct timer *) malloc (offsetof (struct timer,
+								thrfunc));
+	if (newp == NULL)
+	  /* No more memory.  */
+	  return -1;
+
+	if (evp == NULL)
+	  {
+	    /* The kernel has to pass up the timer ID which is a
+	       userlevel object.  Therefore we cannot leave it up to
+	       the kernel to determine it.  */
+	    local_evp.sigev_notify = SIGEV_SIGNAL;
+	    local_evp.sigev_signo = SIGALRM;
+	    local_evp.sigev_value.sival_ptr = newp;
+
+	    evp = &local_evp;
+	  }
+
+	kernel_timer_t ktimerid;
+	int retval = INLINE_SYSCALL (timer_create, 3, syscall_clockid, evp,
+				     &ktimerid);
+
+	if (retval != -1)
+	  {
+	    newp->sigev_notify = (evp != NULL
+				  ? evp->sigev_notify : SIGEV_SIGNAL);
+	    newp->ktimerid = ktimerid;
+
+	    *timerid = (timer_t) newp;
+	  }
+	else
+	  {
+	    /* Cannot allocate the timer, fail.  */
+	    free (newp);
+	    retval = -1;
+	  }
+
+	return retval;
+      }
+    else
+      {
+	/* Create the helper thread.  */
+	pthread_once (&__helper_once, __start_helper_thread);
+	if (__helper_tid == 0)
+	  {
+	    /* No resources to start the helper thread.  */
+	    __set_errno (EAGAIN);
 	    return -1;
+	  }
 
-	  if (evp == NULL)
-	    {
-	      /* The kernel has to pass up the timer ID which is a
-		 userlevel object.  Therefore we cannot leave it up to
-		 the kernel to determine it.  */
-	      local_evp.sigev_notify = SIGEV_SIGNAL;
-	      local_evp.sigev_signo = SIGALRM;
-	      local_evp.sigev_value.sival_ptr = newp;
+	struct timer *newp;
+	newp = (struct timer *) malloc (sizeof (struct timer));
+	if (newp == NULL)
+	  return -1;
 
-	      evp = &local_evp;
-	    }
+	/* Copy the thread parameters the user provided.  */
+	newp->sival = evp->sigev_value;
+	newp->thrfunc = evp->sigev_notify_function;
+	newp->sigev_notify = SIGEV_THREAD;
 
-	  kernel_timer_t ktimerid;
-	  int retval = INLINE_SYSCALL (timer_create, 3, syscall_clockid, evp,
-				       &ktimerid);
+	/* We cannot simply copy the thread attributes since the
+	   implementation might keep internal information for
+	   each instance.  */
+	(void) pthread_attr_init (&newp->attr);
+	if (evp->sigev_notify_attributes != NULL)
+	  {
+	    struct pthread_attr *nattr;
+	    struct pthread_attr *oattr;
 
-# ifndef __ASSUME_POSIX_TIMERS
-	  if (retval != -1 || errno != ENOSYS)
-# endif
-	    {
-# ifndef __ASSUME_POSIX_TIMERS
-	      __no_posix_timers = 1;
-# endif
+	    nattr = (struct pthread_attr *) &newp->attr;
+	    oattr = (struct pthread_attr *) evp->sigev_notify_attributes;
 
-	      if (retval != -1)
-		{
-		  newp->sigev_notify = (evp != NULL
-					? evp->sigev_notify : SIGEV_SIGNAL);
-		  newp->ktimerid = ktimerid;
+	    nattr->schedparam = oattr->schedparam;
+	    nattr->schedpolicy = oattr->schedpolicy;
+	    nattr->flags = oattr->flags;
+	    nattr->guardsize = oattr->guardsize;
+	    nattr->stackaddr = oattr->stackaddr;
+	    nattr->stacksize = oattr->stacksize;
+	  }
 
-		  *timerid = (timer_t) newp;
-		}
-	      else
-		{
-		  /* Cannot allocate the timer, fail.  */
-		  free (newp);
-		  retval = -1;
-		}
+	/* In any case set the detach flag.  */
+	(void) pthread_attr_setdetachstate (&newp->attr,
+					    PTHREAD_CREATE_DETACHED);
 
-	      return retval;
-	    }
+	/* Create the event structure for the kernel timer.  */
+	struct sigevent sev =
+	  { .sigev_value.sival_ptr = newp,
+	    .sigev_signo = SIGTIMER,
+	    .sigev_notify = SIGEV_SIGNAL | SIGEV_THREAD_ID,
+	    ._sigev_un = { ._pad = { [0] = __helper_tid } } };
 
-	  free (newp);
+	/* Create the timer.  */
+	INTERNAL_SYSCALL_DECL (err);
+	int res;
+	res = INTERNAL_SYSCALL (timer_create, err, 3,
+				syscall_clockid, &sev, &newp->ktimerid);
+	if (! INTERNAL_SYSCALL_ERROR_P (res, err))
+	  {
+	    /* Add to the queue of active timers with thread
+	       delivery.  */
+	    pthread_mutex_lock (&__active_timer_sigev_thread_lock);
+	    newp->next = __active_timer_sigev_thread;
+	    __active_timer_sigev_thread = newp;
+	    pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
 
-# ifndef __ASSUME_POSIX_TIMERS
-	  /* When we come here the syscall does not exist.  Make sure we
-	     do not try to use it again.  */
-	  __no_posix_timers = -1;
-# endif
-	}
-      else
-	{
-# ifndef __ASSUME_POSIX_TIMERS
-	  /* Make sure we have the necessary kernel support.  */
-	  if (__no_posix_timers == 0)
-	    {
-	      INTERNAL_SYSCALL_DECL (err);
-	      struct timespec ts;
-	      int res;
-	      res = INTERNAL_SYSCALL (clock_getres, err, 2,
-				      CLOCK_REALTIME, &ts);
-	      __no_posix_timers = (INTERNAL_SYSCALL_ERROR_P (res, err)
-				   ? -1 : 1);
-	    }
+	    *timerid = (timer_t) newp;
+	    return 0;
+	  }
 
-	  if (__no_posix_timers > 0)
-# endif
-	    {
-	      /* Create the helper thread.  */
-	      pthread_once (&__helper_once, __start_helper_thread);
-	      if (__helper_tid == 0)
-		{
-		  /* No resources to start the helper thread.  */
-		  __set_errno (EAGAIN);
-		  return -1;
-		}
+	/* Free the resources.  */
+	free (newp);
 
-	      struct timer *newp;
-	      newp = (struct timer *) malloc (sizeof (struct timer));
-	      if (newp == NULL)
-		return -1;
+	__set_errno (INTERNAL_SYSCALL_ERRNO (res, err));
 
-	      /* Copy the thread parameters the user provided.  */
-	      newp->sival = evp->sigev_value;
-	      newp->thrfunc = evp->sigev_notify_function;
-	      newp->sigev_notify = SIGEV_THREAD;
-
-	      /* We cannot simply copy the thread attributes since the
-		 implementation might keep internal information for
-		 each instance.  */
-	      (void) pthread_attr_init (&newp->attr);
-	      if (evp->sigev_notify_attributes != NULL)
-		{
-		  struct pthread_attr *nattr;
-		  struct pthread_attr *oattr;
-
-		  nattr = (struct pthread_attr *) &newp->attr;
-		  oattr = (struct pthread_attr *) evp->sigev_notify_attributes;
-
-		  nattr->schedparam = oattr->schedparam;
-		  nattr->schedpolicy = oattr->schedpolicy;
-		  nattr->flags = oattr->flags;
-		  nattr->guardsize = oattr->guardsize;
-		  nattr->stackaddr = oattr->stackaddr;
-		  nattr->stacksize = oattr->stacksize;
-		}
-
-	      /* In any case set the detach flag.  */
-	      (void) pthread_attr_setdetachstate (&newp->attr,
-						  PTHREAD_CREATE_DETACHED);
-
-	      /* Create the event structure for the kernel timer.  */
-	      struct sigevent sev =
-		{ .sigev_value.sival_ptr = newp,
-		  .sigev_signo = SIGTIMER,
-		  .sigev_notify = SIGEV_SIGNAL | SIGEV_THREAD_ID,
-		  ._sigev_un = { ._pad = { [0] = __helper_tid } } };
-
-	      /* Create the timer.  */
-	      INTERNAL_SYSCALL_DECL (err);
-	      int res;
-	      res = INTERNAL_SYSCALL (timer_create, err, 3,
-				      syscall_clockid, &sev, &newp->ktimerid);
-	      if (! INTERNAL_SYSCALL_ERROR_P (res, err))
-		{
-		  /* Add to the queue of active timers with thread
-		     delivery.  */
-		  pthread_mutex_lock (&__active_timer_sigev_thread_lock);
-		  newp->next = __active_timer_sigev_thread;
-		  __active_timer_sigev_thread = newp;
-		  pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
-
-		  *timerid = (timer_t) newp;
-		  return 0;
-		}
-
-	      /* Free the resources.  */
-	      free (newp);
-
-	      __set_errno (INTERNAL_SYSCALL_ERRNO (res, err));
-
-	      return -1;
-	    }
-	}
-    }
-
-# ifndef __ASSUME_POSIX_TIMERS
-  /* Compatibility code.  */
-  return compat_timer_create (clock_id, evp, timerid);
-# endif
+	return -1;
+      }
+  }
 }
-#else
-# ifdef timer_create_alias
-#  define timer_create timer_create_alias
-# endif
-/* The new system calls are not available.  Use the userlevel
-   implementation.  */
-# include <nptl/sysdeps/pthread/timer_create.c>
-#endif

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_delete.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_delete.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_delete.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2003.
 
@@ -24,91 +24,51 @@
 #include "kernel-posix-timers.h"
 
 
-#ifdef __NR_timer_delete
-# ifndef __ASSUME_POSIX_TIMERS
-static int compat_timer_delete (timer_t timerid);
-#  define timer_delete static compat_timer_delete
-#  include <nptl/sysdeps/pthread/timer_delete.c>
-#  undef timer_delete
-# endif
-
-# ifdef timer_delete_alias
-#  define timer_delete timer_delete_alias
-# endif
+#ifdef timer_delete_alias
+# define timer_delete timer_delete_alias
+#endif
 
 
 int
 timer_delete (timerid)
      timer_t timerid;
 {
-# undef timer_delete
-# ifndef __ASSUME_POSIX_TIMERS
-  if (__no_posix_timers >= 0)
-# endif
+#undef timer_delete
+  struct timer *kt = (struct timer *) timerid;
+
+  /* Delete the kernel timer object.  */
+  int res = INLINE_SYSCALL (timer_delete, 1, kt->ktimerid);
+
+  if (res == 0)
     {
-      struct timer *kt = (struct timer *) timerid;
-
-      /* Delete the kernel timer object.  */
-      int res = INLINE_SYSCALL (timer_delete, 1, kt->ktimerid);
-
-      if (res == 0)
+      if (kt->sigev_notify == SIGEV_THREAD)
 	{
-	  if (kt->sigev_notify == SIGEV_THREAD)
+	  /* Remove the timer from the list.  */
+	  pthread_mutex_lock (&__active_timer_sigev_thread_lock);
+	  if (__active_timer_sigev_thread == kt)
+	    __active_timer_sigev_thread = kt->next;
+	  else
 	    {
-	      /* Remove the timer from the list.  */
-	      pthread_mutex_lock (&__active_timer_sigev_thread_lock);
-	      if (__active_timer_sigev_thread == kt)
-		__active_timer_sigev_thread = kt->next;
-	      else
-		{
-		  struct timer *prevp = __active_timer_sigev_thread;
-		  while (prevp->next != NULL)
-		    if (prevp->next == kt)
-		      {
-			prevp->next = kt->next;
-			break;
-		      }
-		    else
-		      prevp = prevp->next;
-		}
-	      pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
+	      struct timer *prevp = __active_timer_sigev_thread;
+	      while (prevp->next != NULL)
+		if (prevp->next == kt)
+		  {
+		    prevp->next = kt->next;
+		    break;
+		  }
+		else
+		  prevp = prevp->next;
 	    }
-
-# ifndef __ASSUME_POSIX_TIMERS
-	  /* We know the syscall support is available.  */
-	  __no_posix_timers = 1;
-# endif
-
-	  /* Free the memory.  */
-	  (void) free (kt);
-
-	  return 0;
+	  pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
 	}
 
-      /* The kernel timer is not known or something else bad happened.
-	 Return the error.  */
-# ifndef __ASSUME_POSIX_TIMERS
-      if (errno != ENOSYS)
-	{
-	  __no_posix_timers = 1;
-# endif
-	  return -1;
-# ifndef __ASSUME_POSIX_TIMERS
-	}
+      /* Free the memory.  */
+      (void) free (kt);
 
-      __no_posix_timers = -1;
-# endif
+      return 0;
     }
 
-# ifndef __ASSUME_POSIX_TIMERS
-  return compat_timer_delete (timerid);
-# endif
+  /* The kernel timer is not known or something else bad happened.
+     Return the error.  */
+  return -1;
 }
-#else
-# ifdef timer_delete_alias
-#  define timer_delete timer_delete_alias
-# endif
-/* The new system calls are not available.  Use the userlevel
-   implementation.  */
-# include <nptl/sysdeps/pthread/timer_delete.c>
-#endif

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2003.
 
@@ -23,58 +23,20 @@
 #include "kernel-posix-timers.h"
 
 
-#ifdef __NR_timer_getoverrun
-# ifndef __ASSUME_POSIX_TIMERS
-static int compat_timer_getoverrun (timer_t timerid);
-#  define timer_getoverrun static compat_timer_getoverrun
-#  include <nptl/sysdeps/pthread/timer_getoverr.c>
-#  undef timer_getoverrun
-# endif
-
-# ifdef timer_getoverrun_alias
-#  define timer_getoverrun timer_getoverrun_alias
-# endif
+#ifdef timer_getoverrun_alias
+# define timer_getoverrun timer_getoverrun_alias
+#endif
 
 
 int
 timer_getoverrun (timerid)
      timer_t timerid;
 {
-# undef timer_getoverrun
-# ifndef __ASSUME_POSIX_TIMERS
-  if (__no_posix_timers >= 0)
-# endif
-    {
-      struct timer *kt = (struct timer *) timerid;
+#undef timer_getoverrun
+  struct timer *kt = (struct timer *) timerid;
 
-      /* Get the information from the kernel.  */
-      int res = INLINE_SYSCALL (timer_getoverrun, 1, kt->ktimerid);
+  /* Get the information from the kernel.  */
+  int res = INLINE_SYSCALL (timer_getoverrun, 1, kt->ktimerid);
 
-# ifndef __ASSUME_POSIX_TIMERS
-      if (res != -1 || errno != ENOSYS)
-	{
-	  /* We know the syscall support is available.  */
-	  __no_posix_timers = 1;
-# endif
-	  return res;
-# ifndef __ASSUME_POSIX_TIMERS
-	}
-# endif
-
-# ifndef __ASSUME_POSIX_TIMERS
-      __no_posix_timers = -1;
-# endif
-    }
-
-# ifndef __ASSUME_POSIX_TIMERS
-  return compat_timer_getoverrun (timerid);
-# endif
+  return res;
 }
-#else
-# ifdef timer_getoverrun_alias
-#  define timer_getoverrun timer_getoverrun_alias
-# endif
-/* The new system calls are not available.  Use the userlevel
-   implementation.  */
-# include <nptl/sysdeps/pthread/timer_getoverr.c>
-#endif

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_gettime.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_gettime.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_gettime.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2003.
 
@@ -24,17 +24,9 @@
 #include "kernel-posix-timers.h"
 
 
-#ifdef __NR_timer_gettime
-# ifndef __ASSUME_POSIX_TIMERS
-static int compat_timer_gettime (timer_t timerid, struct itimerspec *value);
-#  define timer_gettime static compat_timer_gettime
-#  include <nptl/sysdeps/pthread/timer_gettime.c>
-#  undef timer_gettime
-# endif
-
-# ifdef timer_gettime_alias
-#  define timer_gettime timer_gettime_alias
-# endif
+#ifdef timer_gettime_alias
+# define timer_gettime timer_gettime_alias
+#endif
 
 
 int
@@ -42,41 +34,11 @@
      timer_t timerid;
      struct itimerspec *value;
 {
-# undef timer_gettime
-# ifndef __ASSUME_POSIX_TIMERS
-  if (__no_posix_timers >= 0)
-# endif
-    {
-      struct timer *kt = (struct timer *) timerid;
+#undef timer_gettime
+  struct timer *kt = (struct timer *) timerid;
 
-      /* Delete the kernel timer object.  */
-      int res = INLINE_SYSCALL (timer_gettime, 2, kt->ktimerid, value);
+  /* Delete the kernel timer object.  */
+  int res = INLINE_SYSCALL (timer_gettime, 2, kt->ktimerid, value);
 
-# ifndef __ASSUME_POSIX_TIMERS
-      if (res != -1 || errno != ENOSYS)
-	{
-	  /* We know the syscall support is available.  */
-	  __no_posix_timers = 1;
-# endif
-	  return res;
-# ifndef __ASSUME_POSIX_TIMERS
-	}
-# endif
-
-# ifndef __ASSUME_POSIX_TIMERS
-      __no_posix_timers = -1;
-# endif
-    }
-
-# ifndef __ASSUME_POSIX_TIMERS
-  return compat_timer_gettime (timerid, value);
-# endif
+  return res;
 }
-#else
-# ifdef timer_gettime_alias
-#  define timer_gettime timer_gettime_alias
-# endif
-/* The new system calls are not available.  Use the userlevel
-   implementation.  */
-# include <nptl/sysdeps/pthread/timer_gettime.c>
-#endif

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_routines.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_routines.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_routines.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2007, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2003.
 
@@ -39,7 +39,6 @@
 };
 
 
-#ifdef __NR_timer_create
 /* Helper thread to call the user-provided function.  */
 static void *
 timer_sigev_thread (void *arg)
@@ -196,8 +195,3 @@
      be created.  */
   pthread_atfork (NULL, NULL, reset_helper_control);
 }
-#endif
-
-#ifndef __ASSUME_POSIX_TIMERS
-# include <nptl/sysdeps/pthread/timer_routines.c>
-#endif

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_settime.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_settime.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/timer_settime.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2003.
 
@@ -24,19 +24,9 @@
 #include "kernel-posix-timers.h"
 
 
-#ifdef __NR_timer_settime
-# ifndef __ASSUME_POSIX_TIMERS
-static int compat_timer_settime (timer_t timerid, int flags,
-				 const struct itimerspec *value,
-				 struct itimerspec *ovalue);
-#  define timer_settime static compat_timer_settime
-#  include <nptl/sysdeps/pthread/timer_settime.c>
-#  undef timer_settime
-# endif
-
-# ifdef timer_settime_alias
-#  define timer_settime timer_settime_alias
-# endif
+#ifdef timer_settime_alias
+# define timer_settime timer_settime_alias
+#endif
 
 
 int
@@ -46,42 +36,12 @@
      const struct itimerspec *value;
      struct itimerspec *ovalue;
 {
-# undef timer_settime
-# ifndef __ASSUME_POSIX_TIMERS
-  if (__no_posix_timers >= 0)
-# endif
-    {
-      struct timer *kt = (struct timer *) timerid;
+#undef timer_settime
+  struct timer *kt = (struct timer *) timerid;
 
-      /* Delete the kernel timer object.  */
-      int res = INLINE_SYSCALL (timer_settime, 4, kt->ktimerid, flags,
-				value, ovalue);
+  /* Delete the kernel timer object.  */
+  int res = INLINE_SYSCALL (timer_settime, 4, kt->ktimerid, flags,
+			    value, ovalue);
 
-# ifndef __ASSUME_POSIX_TIMERS
-      if (res != -1 || errno != ENOSYS)
-	{
-	  /* We know the syscall support is available.  */
-	  __no_posix_timers = 1;
-# endif
-	  return res;
-# ifndef __ASSUME_POSIX_TIMERS
-	}
-# endif
-
-# ifndef __ASSUME_POSIX_TIMERS
-      __no_posix_timers = -1;
-# endif
-    }
-
-# ifndef __ASSUME_POSIX_TIMERS
-  return compat_timer_settime (timerid, flags, value, ovalue);
-# endif
+  return res;
 }
-#else
-# ifdef timer_settime_alias
-#  define timer_settime timer_settime_alias
-# endif
-/* The new system calls are not available.  Use the userlevel
-   implementation.  */
-# include <nptl/sysdeps/pthread/timer_settime.c>
-#endif

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S Fri Aug 17 00:01:45 2012
@@ -457,10 +457,6 @@
 	movl	$__NR_clock_gettime, %eax
 	syscall
 #  endif
-#  ifndef __ASSUME_POSIX_TIMERS
-	cmpq	$-ENOSYS, %rax
-	je	19f
-#  endif
 
 	/* Compute relative timeout.  */
 	movq	(%r13), %rcx
@@ -604,32 +600,6 @@
 	subq	$cond_lock, %rdi
 # endif
 	jmp	6b
-
-# if defined __NR_clock_gettime && !defined __ASSUME_POSIX_TIMERS
-	/* clock_gettime not available.  */
-19:	leaq	32(%rsp), %rdi
-	xorl	%esi, %esi
-	/* This call works because we directly jump to a system call entry
-	   which preserves all the registers.  */
-	call	JUMPTARGET(__gettimeofday)
-
-	/* Compute relative timeout.  */
-	movq	40(%rsp), %rax
-	movl	$1000, %edx
-	mul	%rdx		/* Milli seconds to nano seconds.  */
-	movq	(%r13), %rcx
-	movq	8(%r13), %rdx
-	subq	32(%rsp), %rcx
-	subq	%rax, %rdx
-	jns	20f
-	addq	$1000000000, %rdx
-	decq	%rcx
-20:	testq	%rcx, %rcx
-	movq	8(%rsp), %rdi
-	movq	$-ETIMEDOUT, %r14
-	js	6b
-	jmp	21b
-# endif
 #endif
 	.size	__pthread_cond_timedwait, .-__pthread_cond_timedwait
 versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,

Modified: fsf/trunk/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.alpha (original)
+++ fsf/trunk/libc/ports/ChangeLog.alpha Fri Aug 17 00:01:45 2012
@@ -1,3 +1,8 @@
+2012-08-16  Carlos O'Donell  <carlos_odonell@xxxxxxxxxx>
+
+	* sysdeps/alpha/ldsodefs.h (ARCH_PLTENTER_MEMBERS)
+	<alpha_gnu_pltenter>: struct La_alpha_regs is not const.
+
 2012-08-13  Richard Henderson  <rth@xxxxxxxxxxx>
 
 	* configure.in: Don't test toolchain support for TLS or GPREL.

Modified: fsf/trunk/libc/ports/ChangeLog.ia64
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.ia64 (original)
+++ fsf/trunk/libc/ports/ChangeLog.ia64 Fri Aug 17 00:01:45 2012
@@ -1,3 +1,8 @@
+2012-08-16  Carlos O'Donell  <carlos_odonell@xxxxxxxxxx>
+
+	* sysdeps/ia64/ldsodefs.h (ARCH_PLTENTER_MEMBERS)
+	<ia64_gnu_pltenter>: struct La_ia64_regs is not constant.
+
 2012-08-14  Mike Frysinger  <vapier@xxxxxxxxxx>
 
 	* sysdeps/ia64/configure.in: Remove assembler-with-cpp debug check.

Modified: fsf/trunk/libc/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.mips (original)
+++ fsf/trunk/libc/ports/ChangeLog.mips Fri Aug 17 00:01:45 2012
@@ -1,3 +1,9 @@
+2012-08-16  Carlos O'Donell  <carlos_odonell@xxxxxxxxxx>
+
+	* sysdeps/mips/ldsodefs.h (ARCH_PLTENTER_MEMBERS)
+	<mips_o32_gnu_pltenter, mips_n32_gnu_pltenter, mips_n64_gnu_pltenter>:
+	struct La_mips_32_regs and struct La_mips_64_regs are not constant.
+
 2012-08-15  Tom de Vries  <vries@xxxxxxxxxxxxxxxx>
 	    Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>
 

Modified: fsf/trunk/libc/ports/sysdeps/alpha/ldsodefs.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/alpha/ldsodefs.h (original)
+++ fsf/trunk/libc/ports/sysdeps/alpha/ldsodefs.h Fri Aug 17 00:01:45 2012
@@ -26,7 +26,7 @@
 #define ARCH_PLTENTER_MEMBERS						\
     Elf64_Addr (*alpha_gnu_pltenter) (Elf64_Sym *, unsigned int,	\
 				     uintptr_t *, uintptr_t *,		\
-				     const struct La_alpha_regs *,	\
+				     struct La_alpha_regs *,		\
 				     unsigned int *, const char *name,  \
 				     long int *framesizep);
 

Modified: fsf/trunk/libc/ports/sysdeps/ia64/ldsodefs.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/ia64/ldsodefs.h (original)
+++ fsf/trunk/libc/ports/sysdeps/ia64/ldsodefs.h Fri Aug 17 00:01:45 2012
@@ -26,7 +26,7 @@
 #define ARCH_PLTENTER_MEMBERS						\
     Elf64_Addr (*ia64_gnu_pltenter) (Elf64_Sym *, unsigned int,		\
 				     uintptr_t *, uintptr_t *,		\
-				     const struct La_ia64_regs *,	\
+				     struct La_ia64_regs *,		\
 				     unsigned int *, const char *name,  \
 				     long int *framesizep);
 

Modified: fsf/trunk/libc/ports/sysdeps/mips/ldsodefs.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/ldsodefs.h (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/ldsodefs.h Fri Aug 17 00:01:45 2012
@@ -29,17 +29,17 @@
 #define ARCH_PLTENTER_MEMBERS						    \
     Elf32_Addr (*mips_o32_gnu_pltenter) (Elf32_Sym *, unsigned int,	    \
 					 uintptr_t *, uintptr_t *,	    \
-					 const struct La_mips_32_regs *,    \
+					 struct La_mips_32_regs *,	    \
 					 unsigned int *, const char *name,  \
 					 long int *framesizep);		    \
     Elf32_Addr (*mips_n32_gnu_pltenter) (Elf32_Sym *, unsigned int,	    \
 					 uintptr_t *, uintptr_t *,	    \
-					 const struct La_mips_64_regs *,    \
+					 struct La_mips_64_regs *,	    \
 					 unsigned int *, const char *name,  \
 					 long int *framesizep);		    \
     Elf64_Addr (*mips_n64_gnu_pltenter) (Elf64_Sym *, unsigned int,	    \
 					 uintptr_t *, uintptr_t *,	    \
-					 const struct La_mips_64_regs *,    \
+					 struct La_mips_64_regs *,	    \
 					 unsigned int *, const char *name,  \
 					 long int *framesizep);
 

Modified: fsf/trunk/libc/stdio-common/_itoa.c
==============================================================================
--- fsf/trunk/libc/stdio-common/_itoa.c (original)
+++ fsf/trunk/libc/stdio-common/_itoa.c Fri Aug 17 00:01:45 2012
@@ -206,7 +206,7 @@
     {
 # define RUN_2N(BITS) \
       do								      \
-        {								      \
+	{								      \
 	  /* `unsigned long long int' always has 64 bits.  */		      \
 	  mp_limb_t work_hi = value >> (64 - BITS_PER_MP_LIMB);		      \
 									      \
@@ -264,7 +264,8 @@
 	if (brec->flag)
 	  while (value != 0)
 	    {
-	      mp_limb_t quo, rem, x, dummy;
+	      mp_limb_t quo, rem, x;
+	      mp_limb_t __attribute__ ((unused));
 
 	      umul_ppmm (x, dummy, value, base_multiplier);
 	      quo = (x + ((value - x) >> 1)) >> (brec->post_shift - 1);
@@ -275,7 +276,8 @@
 	else
 	  while (value != 0)
 	    {
-	      mp_limb_t quo, rem, x, dummy;
+	      mp_limb_t quo, rem, x;
+	      mp_limb_t __attribute__ ((unused));
 
 	      umul_ppmm (x, dummy, value, base_multiplier);
 	      quo = x >> brec->post_shift;
@@ -401,7 +403,8 @@
 	    if (brec->flag)
 	      while (ti != 0)
 		{
-		  mp_limb_t quo, rem, x, dummy;
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
 
 		  umul_ppmm (x, dummy, ti, base_multiplier);
 		  quo = (x + ((ti - x) >> 1)) >> (brec->post_shift - 1);
@@ -413,7 +416,8 @@
 	    else
 	      while (ti != 0)
 		{
-		  mp_limb_t quo, rem, x, dummy;
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
 
 		  umul_ppmm (x, dummy, ti, base_multiplier);
 		  quo = x >> brec->post_shift;

Modified: fsf/trunk/libc/stdio-common/_itowa.c
==============================================================================
--- fsf/trunk/libc/stdio-common/_itowa.c (original)
+++ fsf/trunk/libc/stdio-common/_itowa.c Fri Aug 17 00:01:45 2012
@@ -1,5 +1,5 @@
 /* Internal function for converting integers to ASCII.
-   Copyright (C) 1994-1996,1999,2000,2002,2007 Free Software Foundation, Inc.
+   Copyright (C) 1994-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Torbjorn Granlund <tege@xxxxxxxxxxxxxxx>
    and Ulrich Drepper <drepper@xxxxxxx>.
@@ -102,7 +102,7 @@
     {
 # define RUN_2N(BITS) \
       do								      \
-        {								      \
+	{								      \
 	  /* `unsigned long long int' always has 64 bits.  */		      \
 	  mp_limb_t work_hi = value >> (64 - BITS_PER_MP_LIMB);		      \
 									      \
@@ -296,7 +296,8 @@
 	    if (brec->flag)
 	      while (ti != 0)
 		{
-		  mp_limb_t quo, rem, x, dummy;
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
 
 		  umul_ppmm (x, dummy, ti, base_multiplier);
 		  quo = (x + ((ti - x) >> 1)) >> (brec->post_shift - 1);
@@ -308,7 +309,8 @@
 	    else
 	      while (ti != 0)
 		{
-		  mp_limb_t quo, rem, x, dummy;
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
 
 		  umul_ppmm (x, dummy, ti, base_multiplier);
 		  quo = x >> brec->post_shift;

Modified: fsf/trunk/libc/stdlib/divmod_1.c
==============================================================================
--- fsf/trunk/libc/stdlib/divmod_1.c (original)
+++ fsf/trunk/libc/stdlib/divmod_1.c Fri Aug 17 00:01:45 2012
@@ -6,7 +6,7 @@
 
    QUOT_PTR and DIVIDEND_PTR might point to the same limb.
 
-Copyright (C) 1991, 1993, 1994, 1996 Free Software Foundation, Inc.
+Copyright (C) 1991-2012 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -54,7 +54,7 @@
 {
   mp_size_t i;
   mp_limb_t n1, n0, r;
-  mp_limb_t dummy;
+  mp_limb_t dummy __attribute__ ((unused));
 
   /* ??? Should this be handled at all?  Rely on callers?  */
   if (dividend_size == 0)

Modified: fsf/trunk/libc/stdlib/gmp-impl.h
==============================================================================
--- fsf/trunk/libc/stdlib/gmp-impl.h (original)
+++ fsf/trunk/libc/stdlib/gmp-impl.h Fri Aug 17 00:01:45 2012
@@ -1,6 +1,6 @@
 /* Include file for internal GNU MP types and definitions.
 
-Copyright (C) 1991, 1993, 1994, 1995, 1996, 2011 Free Software Foundation, Inc.
+Copyright (C) 1991-2012 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -216,7 +216,8 @@
    has to be set.  Put the quotient in Q and the remainder in R.  */
 #define udiv_qrnnd_preinv(q, r, nh, nl, d, di) \
   do {									\
-    mp_limb_t _q, _ql, _r;						\
+    mp_limb_t _ql __attribute__ ((unused));				\
+    mp_limb_t _q, _r;							\
     mp_limb_t _xh, _xl;							\
     umul_ppmm (_q, _ql, (nh), (di));					\
     _q += (nh);			/* DI is 2**BITS_PER_MP_LIMB too small */\

Modified: fsf/trunk/libc/stdlib/longlong.h
==============================================================================
--- fsf/trunk/libc/stdlib/longlong.h (original)
+++ fsf/trunk/libc/stdlib/longlong.h Fri Aug 17 00:01:45 2012
@@ -850,8 +850,6 @@
    FIXME: What's needed for gcc PowerPC VxWorks?  __vxworks__ is not good
    enough, since that hits ARM and m68k too.  */
 #if (defined (_ARCH_PPC)	/* AIX */				\
-     || defined (_ARCH_PWR)	/* AIX */				\
-     || defined (_ARCH_COM)	/* AIX */				\
      || defined (__powerpc__)	/* gcc */				\
      || defined (__POWERPC__)	/* BEOS */				\
      || defined (__ppc__)	/* Darwin */				\
@@ -862,37 +860,37 @@
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   do {									\
     if (__builtin_constant_p (bh) && (bh) == 0)				\
-      __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2"		\
+      __asm__ ("add%I4c %1,%3,%4\n\taddze %0,%2"		\
 	     : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
     else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0)		\
-      __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2"		\
+      __asm__ ("add%I4c %1,%3,%4\n\taddme %0,%2"		\
 	     : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
     else								\
-      __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3"		\
+      __asm__ ("add%I5c %1,%4,%5\n\tadde %0,%2,%3"		\
 	     : "=r" (sh), "=&r" (sl)					\
 	     : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl));		\
   } while (0)
 #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
   do {									\
     if (__builtin_constant_p (ah) && (ah) == 0)				\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2"	\
+      __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2"	\
 	       : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
     else if (__builtin_constant_p (ah) && (ah) == ~(USItype) 0)		\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2"	\
+      __asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2"	\
 	       : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
     else if (__builtin_constant_p (bh) && (bh) == 0)			\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2"		\
+      __asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2"		\
 	       : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
     else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0)		\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2"		\
+      __asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2"		\
 	       : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
     else								\
-      __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2"	\
+      __asm__ ("subf%I4c %1,%5,%4\n\tsubfe %0,%3,%2"	\
 	       : "=r" (sh), "=&r" (sl)					\
 	       : "r" (ah), "r" (bh), "rI" (al), "r" (bl));		\
   } while (0)
 #define count_leading_zeros(count, x) \
-  __asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (count) : "r" (x))
+  __asm__ ("cntlzw %0,%1" : "=r" (count) : "r" (x))
 #define COUNT_LEADING_ZEROS_0 32
 #if defined (_ARCH_PPC) || defined (__powerpc__) || defined (__POWERPC__) \
   || defined (__ppc__)                                                    \
@@ -914,14 +912,6 @@
   } while (0)
 #define SMUL_TIME 14
 #define UDIV_TIME 120
-#elif defined (_ARCH_PWR)
-#define UMUL_TIME 8
-#define smul_ppmm(xh, xl, m0, m1) \
-  __asm__ ("mul %0,%2,%3" : "=r" (xh), "=q" (xl) : "r" (m0), "r" (m1))
-#define SMUL_TIME 4
-#define sdiv_qrnnd(q, r, nh, nl, d) \
-  __asm__ ("div %0,%2,%4" : "=r" (q), "=q" (r) : "r" (nh), "1" (nl), "r" (d))
-#define UDIV_TIME 100
 #endif
 #endif /* 32-bit POWER architecture variants.  */
 
@@ -931,32 +921,32 @@
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   do {									\
     if (__builtin_constant_p (bh) && (bh) == 0)				\
-      __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2"		\
+      __asm__ ("add%I4c %1,%3,%4\n\taddze %0,%2"		\
 	     : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
     else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0)		\
-      __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2"		\
+      __asm__ ("add%I4c %1,%3,%4\n\taddme %0,%2"		\
 	     : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
     else								\
-      __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3"		\
+      __asm__ ("add%I5c %1,%4,%5\n\tadde %0,%2,%3"		\
 	     : "=r" (sh), "=&r" (sl)					\
 	     : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl));		\
   } while (0)
 #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
   do {									\
     if (__builtin_constant_p (ah) && (ah) == 0)				\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2"	\
+      __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2"	\
 	       : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
     else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0)		\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2"	\
+      __asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2"	\
 	       : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
     else if (__builtin_constant_p (bh) && (bh) == 0)			\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2"		\
+      __asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2"		\
 	       : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
     else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0)		\
-      __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2"		\
+      __asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2"		\
 	       : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
     else								\
-      __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2"	\
+      __asm__ ("subf%I4c %1,%5,%4\n\tsubfe %0,%3,%2"	\
 	       : "=r" (sh), "=&r" (sl)					\
 	       : "r" (ah), "r" (bh), "rI" (al), "r" (bl));		\
   } while (0)

Modified: fsf/trunk/libc/stdlib/mod_1.c
==============================================================================
--- fsf/trunk/libc/stdlib/mod_1.c (original)
+++ fsf/trunk/libc/stdlib/mod_1.c Fri Aug 17 00:01:45 2012
@@ -3,7 +3,7 @@
    Return the single-limb remainder.
    There are no constraints on the value of the divisor.
 
-Copyright (C) 1991, 1993, 1994, Free Software Foundation, Inc.
+Copyright (C) 1991-2012 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -49,7 +49,7 @@
 {
   mp_size_t i;
   mp_limb_t n1, n0, r;
-  mp_limb_t dummy;
+  mp_limb_t dummy __attribute__ ((unused));
 
   /* Botch: Should this be handled at all?  Rely on callers?  */
   if (dividend_size == 0)

Modified: fsf/trunk/libc/sysdeps/sh/ldsodefs.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sh/ldsodefs.h (original)
+++ fsf/trunk/libc/sysdeps/sh/ldsodefs.h Fri Aug 17 00:01:45 2012
@@ -26,7 +26,7 @@
 
 #define ARCH_PLTENTER_MEMBERS						\
     uintptr_t (*sh_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
-				  uintptr_t *, const struct La_sh_regs *, \
+				  uintptr_t *, struct La_sh_regs *, \
 				  unsigned int *, const char *name,	\
 				  long int *framesizep)
 

Modified: fsf/trunk/libc/sysdeps/sparc/ldsodefs.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/ldsodefs.h (original)
+++ fsf/trunk/libc/sysdeps/sparc/ldsodefs.h Fri Aug 17 00:01:45 2012
@@ -29,12 +29,12 @@
 #define ARCH_PLTENTER_MEMBERS						\
     Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int,	\
 					uintptr_t *, uintptr_t *,	\
-					const struct La_sparc32_regs *,	\
+					struct La_sparc32_regs *,	\
 					unsigned int *, const char *name, \
 					long int *framesizep);		\
     Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int,	\
 					uintptr_t *, uintptr_t *,	\
-					const struct La_sparc64_regs *,	\
+					struct La_sparc64_regs *,	\
 					unsigned int *, const char *name, \
 					long int *framesizep)
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getcpuclockid.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getcpuclockid.c Fri Aug 17 00:01:45 2012
@@ -1,5 +1,5 @@
 /* clock_getcpuclockid -- Get a clockid_t for process CPU time.  Linux version.
-   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2004-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
@@ -37,11 +37,6 @@
 
 # if !(__ASSUME_POSIX_CPU_TIMERS > 0)
   extern int __libc_missing_posix_cpu_timers attribute_hidden;
-#  if !(__ASSUME_POSIX_TIMERS > 0)
-  extern int __libc_missing_posix_timers attribute_hidden;
-  if (__libc_missing_posix_timers && !__libc_missing_posix_cpu_timers)
-    __libc_missing_posix_cpu_timers = 1;
-#  endif
   if (!__libc_missing_posix_cpu_timers)
 # endif
     {
@@ -53,33 +48,24 @@
 	  return 0;
 	}
 
-# if !(__ASSUME_POSIX_TIMERS > 0)
-      if (INTERNAL_SYSCALL_ERRNO (r, err) == ENOSYS)
+      if (INTERNAL_SYSCALL_ERRNO (r, err) == EINVAL)
 	{
-	  /* The kernel doesn't support these calls at all.  */
-	  __libc_missing_posix_timers = 1;
-	  __libc_missing_posix_cpu_timers = 1;
+# if !(__ASSUME_POSIX_CPU_TIMERS > 0)
+	  if (pidclock == MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
+	      || INTERNAL_SYSCALL_ERROR_P (INTERNAL_SYSCALL
+					   (clock_getres, err, 2,
+					    MAKE_PROCESS_CPUCLOCK
+					    (0, CPUCLOCK_SCHED), NULL),
+					   err))
+	    /* The kernel doesn't support these clocks at all.  */
+	    __libc_missing_posix_cpu_timers = 1;
+	  else
+# endif
+	    /* The clock_getres system call checked the PID for us.  */
+	    return ESRCH;
 	}
       else
-# endif
-	if (INTERNAL_SYSCALL_ERRNO (r, err) == EINVAL)
-	  {
-# if !(__ASSUME_POSIX_CPU_TIMERS > 0)
-	    if (pidclock == MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
-		|| INTERNAL_SYSCALL_ERROR_P (INTERNAL_SYSCALL
-					     (clock_getres, err, 2,
-					      MAKE_PROCESS_CPUCLOCK
-					      (0, CPUCLOCK_SCHED), NULL),
-					     err))
-	      /* The kernel doesn't support these clocks at all.  */
-	      __libc_missing_posix_cpu_timers = 1;
-	    else
-# endif
-	      /* The clock_getres system call checked the PID for us.  */
-	      return ESRCH;
-	  }
-	else
-	  return INTERNAL_SYSCALL_ERRNO (r, err);
+	return INTERNAL_SYSCALL_ERRNO (r, err);
     }
 #endif
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getres.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getres.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getres.c Fri Aug 17 00:01:45 2012
@@ -1,5 +1,5 @@
 /* clock_getres -- Get the resolution of a POSIX clockid_t.  Linux version.
-   Copyright (C) 2003,2004,2005,2006,2008,2010 Free Software Foundation, Inc.
+   Copyright (C) 2003-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
@@ -35,11 +35,9 @@
   retval = INLINE_VSYSCALL (clock_getres, 2, clock_id, res); \
   break
 
-#ifdef __ASSUME_POSIX_TIMERS
-
-/* This means the REALTIME and MONOTONIC clock are definitely
-   supported in the kernel.  */
-# define SYSDEP_GETRES							      \
+/* The REALTIME and MONOTONIC clock are definitely supported in the
+   kernel.  */
+#define SYSDEP_GETRES							      \
   SYSDEP_GETRES_CPUTIME							      \
   case CLOCK_REALTIME:							      \
   case CLOCK_MONOTONIC:							      \
@@ -47,57 +45,6 @@
   case CLOCK_REALTIME_COARSE:						      \
   case CLOCK_MONOTONIC_COARSE:						      \
     SYSCALL_GETRES
-
-# define __libc_missing_posix_timers 0
-#elif defined __NR_clock_getres
-/* Is the syscall known to exist?  */
-extern int __libc_missing_posix_timers attribute_hidden;
-
-static inline int
-maybe_syscall_getres (clockid_t clock_id, struct timespec *res)
-{
-  int e = EINVAL;
-
-  if (!__libc_missing_posix_timers)
-    {
-      INTERNAL_SYSCALL_DECL (err);
-      int r = INTERNAL_VSYSCALL (clock_getres, err, 2, clock_id, res);
-      if (!INTERNAL_SYSCALL_ERROR_P (r, err))
-	return 0;
-
-      e = INTERNAL_SYSCALL_ERRNO (r, err);
-      if (e == ENOSYS)
-	{
-	  __libc_missing_posix_timers = 1;
-	  e = EINVAL;
-	}
-    }
-
-  return e;
-}
-
-/* The REALTIME and MONOTONIC clock might be available.  Try the
-   syscall first.  */
-# define SYSDEP_GETRES							      \
-  SYSDEP_GETRES_CPUTIME							      \
-  case CLOCK_REALTIME:							      \
-  case CLOCK_MONOTONIC:							      \
-  case CLOCK_MONOTONIC_RAW:						      \
-  case CLOCK_REALTIME_COARSE:						      \
-  case CLOCK_MONOTONIC_COARSE:						      \
-    retval = maybe_syscall_getres (clock_id, res);			      \
-    if (retval == 0)							      \
-      break;								      \
-    /* Fallback code.  */						      \
-    if (retval == EINVAL && clock_id == CLOCK_REALTIME)			      \
-      retval = realtime_getres (res);					      \
-    else								      \
-      {									      \
-	__set_errno (retval);						      \
-	retval = -1;							      \
-      }									      \
-    break;
-#endif
 
 #ifdef __NR_clock_getres
 /* We handled the REALTIME clock here.  */
@@ -126,26 +73,15 @@
 	return 0;
 
       e = INTERNAL_SYSCALL_ERRNO (r, err);
-#  ifndef __ASSUME_POSIX_TIMERS
-      if (e == ENOSYS)
+      if (e == EINVAL)
 	{
-	  __libc_missing_posix_timers = 1;
-	  __libc_missing_posix_cpu_timers = 1;
-	  e = EINVAL;
-	}
-      else
-#  endif
-	{
-	  if (e == EINVAL)
-	    {
-	      /* Check whether the kernel supports CPU clocks at all.
-		 If not, record it for the future.  */
-	      r = INTERNAL_VSYSCALL (clock_getres, err, 2,
-				    MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
-				    NULL);
-	      if (INTERNAL_SYSCALL_ERROR_P (r, err))
-		__libc_missing_posix_cpu_timers = 1;
-	    }
+	  /* Check whether the kernel supports CPU clocks at all.
+	     If not, record it for the future.  */
+	  r = INTERNAL_VSYSCALL (clock_getres, err, 2,
+				 MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
+				 NULL);
+	  if (INTERNAL_SYSCALL_ERROR_P (r, err))
+	    __libc_missing_posix_cpu_timers = 1;
 	}
     }
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_gettime.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_gettime.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_gettime.c Fri Aug 17 00:01:45 2012
@@ -1,5 +1,5 @@
 /* clock_gettime -- Get current time from a POSIX clockid_t.  Linux version.
-   Copyright (C) 2003,2004,2005,2006,2007,2010,2011 Free Software Foundation, Inc.
+   Copyright (C) 2003-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
@@ -40,67 +40,14 @@
   INTERNAL_VSYSCALL (clock_gettime, err, 2, id, tp)
 #endif
 
-#ifdef __ASSUME_POSIX_TIMERS
-
-/* This means the REALTIME and MONOTONIC clock are definitely
-   supported in the kernel.  */
-# define SYSDEP_GETTIME \
+/* The REALTIME and MONOTONIC clock are definitely supported in the
+   kernel.  */
+#define SYSDEP_GETTIME \
   SYSDEP_GETTIME_CPUTIME;						      \
   case CLOCK_REALTIME:							      \
   case CLOCK_MONOTONIC:							      \
     retval = SYSCALL_GETTIME (clock_id, tp);				      \
     break
-
-# define __libc_missing_posix_timers 0
-#elif defined __NR_clock_gettime
-/* Is the syscall known to exist?  */
-int __libc_missing_posix_timers attribute_hidden;
-
-static inline int
-maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp)
-{
-  int e = EINVAL;
-
-  if (!__libc_missing_posix_timers)
-    {
-      INTERNAL_SYSCALL_DECL (err);
-      int r = INTERNAL_GETTIME (clock_id, tp);
-      if (!INTERNAL_SYSCALL_ERROR_P (r, err))
-	return 0;
-
-      e = INTERNAL_SYSCALL_ERRNO (r, err);
-      if (e == ENOSYS)
-	{
-	  __libc_missing_posix_timers = 1;
-	  e = EINVAL;
-	}
-    }
-
-  return e;
-}
-
-/* The REALTIME and MONOTONIC clock might be available.  Try the
-   syscall first.  */
-# define SYSDEP_GETTIME \
-  SYSDEP_GETTIME_CPUTIME;						      \
-  case CLOCK_REALTIME:							      \
-  case CLOCK_MONOTONIC:							      \
-  case CLOCK_MONOTONIC_RAW:						      \
-  case CLOCK_REALTIME_COARSE:						      \
-  case CLOCK_MONOTONIC_COARSE:						      \
-    retval = maybe_syscall_gettime (clock_id, tp);			      \
-    if (retval == 0)							      \
-      break;								      \
-    /* Fallback code.  */						      \
-    if (retval == EINVAL && clock_id == CLOCK_REALTIME)			      \
-      retval = realtime_gettime (tp);					      \
-    else								      \
-      {									      \
-	__set_errno (retval);						      \
-	retval = -1;							      \
-      }									      \
-    break
-#endif
 
 #ifdef __NR_clock_gettime
 /* We handled the REALTIME clock here.  */
@@ -131,34 +78,23 @@
 	return 0;
 
       e = INTERNAL_SYSCALL_ERRNO (r, err);
-# ifndef __ASSUME_POSIX_TIMERS
-      if (e == ENOSYS)
+      if (e == EINVAL)
 	{
-	  __libc_missing_posix_timers = 1;
-	  __libc_missing_posix_cpu_timers = 1;
-	  e = EINVAL;
-	}
-      else
+# ifdef HAVE_CLOCK_GETRES_VSYSCALL
+	  /* Check whether the kernel supports CPU clocks at all.
+	     If not, record it for the future.  */
+	  r = INTERNAL_VSYSCALL (clock_getres, err, 2,
+				 MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
+				 NULL);
+# else
+	  /* Check whether the kernel supports CPU clocks at all.
+	     If not, record it for the future.  */
+	  r = INTERNAL_SYSCALL (clock_getres, err, 2,
+				MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
+				NULL);
 # endif
-	{
-	  if (e == EINVAL)
-	    {
-# ifdef HAVE_CLOCK_GETRES_VSYSCALL
-	      /* Check whether the kernel supports CPU clocks at all.
-		 If not, record it for the future.  */
-	      r = INTERNAL_VSYSCALL (clock_getres, err, 2,
-				     MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
-				     NULL);
-# else
-	      /* Check whether the kernel supports CPU clocks at all.
-		 If not, record it for the future.  */
-	      r = INTERNAL_SYSCALL (clock_getres, err, 2,
-				    MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
-				    NULL);
-# endif
-	      if (INTERNAL_SYSCALL_ERROR_P (r, err))
-		__libc_missing_posix_cpu_timers = 1;
-	    }
+	  if (INTERNAL_SYSCALL_ERROR_P (r, err))
+	    __libc_missing_posix_cpu_timers = 1;
 	}
     }
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_nanosleep.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_nanosleep.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_nanosleep.c Fri Aug 17 00:01:45 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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,7 +23,6 @@
 #include "kernel-posix-cpu-timers.h"
 
 
-#ifdef __ASSUME_POSIX_TIMERS
 /* We can simply use the syscall.  The CPU clocks are not supported
    with this function.  */
 int
@@ -53,43 +52,3 @@
   return (INTERNAL_SYSCALL_ERROR_P (r, err)
 	  ? INTERNAL_SYSCALL_ERRNO (r, err) : 0);
 }
-
-#else
-# ifdef __NR_clock_nanosleep
-/* Is the syscall known to exist?  */
-extern int __libc_missing_posix_timers attribute_hidden;
-
-/* The REALTIME and MONOTONIC clock might be available.  Try the
-   syscall first.  */
-#  define SYSDEP_NANOSLEEP \
-  if (!__libc_missing_posix_timers)					      \
-    {									      \
-      clockid_t syscall_clockid;					      \
-      INTERNAL_SYSCALL_DECL (err);					      \
-									      \
-      if (clock_id == CLOCK_THREAD_CPUTIME_ID)				      \
-	return EINVAL;							      \
-      if (clock_id == CLOCK_PROCESS_CPUTIME_ID)				      \
-	syscall_clockid = MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED);	      \
-      else								      \
-	syscall_clockid = clock_id;					      \
-									      \
-      int oldstate = LIBC_CANCEL_ASYNC ();				      \
-									      \
-      int r = INTERNAL_SYSCALL (clock_nanosleep, err, 4,		      \
-				syscall_clockid, flags, req, rem);	      \
-									      \
-      LIBC_CANCEL_RESET (oldstate);					      \
-									      \
-      if (!INTERNAL_SYSCALL_ERROR_P (r, err))				      \
-	return 0;							      \
-									      \
-      if (INTERNAL_SYSCALL_ERRNO (r, err) != ENOSYS)			      \
-	return INTERNAL_SYSCALL_ERRNO (r, err);				      \
-									      \
-      __libc_missing_posix_timers = 1;					      \
-    }
-# endif
-
-# include <sysdeps/unix/clock_nanosleep.c>
-#endif

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_settime.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_settime.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_settime.c Fri Aug 17 00:01:45 2012
@@ -32,7 +32,6 @@
 #endif
 
 #if __ASSUME_POSIX_CPU_TIMERS <= 0 && defined __NR_clock_settime
-extern int __libc_missing_posix_timers attribute_hidden;
 extern int __libc_missing_posix_cpu_timers attribute_hidden;
 
 static int
@@ -48,26 +47,15 @@
 	return 0;
 
       e = INTERNAL_SYSCALL_ERRNO (r, err);
-# ifndef __ASSUME_POSIX_TIMERS
-      if (e == ENOSYS)
+      if (e == EINVAL)
 	{
-	  __libc_missing_posix_timers = 1;
-	  __libc_missing_posix_cpu_timers = 1;
-	  e = EINVAL;
-	}
-      else
-# endif
-	{
-	  if (e == EINVAL)
-	    {
-	      /* Check whether the kernel supports CPU clocks at all.
-		 If not, record it for the future.  */
-	      r = INTERNAL_VSYSCALL (clock_getres, err, 2,
-				     MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
-				     NULL);
-	      if (INTERNAL_SYSCALL_ERROR_P (r, err))
-		__libc_missing_posix_cpu_timers = 1;
-	    }
+	  /* Check whether the kernel supports CPU clocks at all.
+	     If not, record it for the future.  */
+	  r = INTERNAL_VSYSCALL (clock_getres, err, 2,
+				 MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
+				 NULL);
+	  if (INTERNAL_SYSCALL_ERROR_P (r, err))
+	    __libc_missing_posix_cpu_timers = 1;
 	}
     }
 
@@ -76,53 +64,11 @@
 #endif
 
 
-#ifdef __ASSUME_POSIX_TIMERS
-/* This means the REALTIME clock is definitely supported in the
-   kernel.  */
-# define SYSDEP_SETTIME \
+/* The REALTIME clock is definitely supported in the kernel.  */
+#define SYSDEP_SETTIME \
   case CLOCK_REALTIME:							      \
     retval = INLINE_SYSCALL (clock_settime, 2, clock_id, tp);		      \
     break
-#elif defined __NR_clock_settime
-/* Is the syscall known to exist?  */
-extern int __libc_missing_posix_timers attribute_hidden;
-
-/* The REALTIME clock might be available.  Try the syscall first.  */
-# define SYSDEP_SETTIME \
-  case CLOCK_REALTIME:							      \
-  case CLOCK_REALTIME_COARSE:						      \
-    {									      \
-      int e = EINVAL;							      \
-									      \
-      if (!__libc_missing_posix_timers)					      \
-	{								      \
-	  INTERNAL_SYSCALL_DECL (err);					      \
-	  int r = INTERNAL_SYSCALL (clock_settime, err, 2, clock_id, tp);     \
-	  if (!INTERNAL_SYSCALL_ERROR_P (r, err))			      \
-	    {								      \
-	      retval = 0;						      \
-	      break;							      \
-	    }								      \
-									      \
-	  e = INTERNAL_SYSCALL_ERRNO (r, err);				      \
-	  if (e == ENOSYS)						      \
-	    {								      \
-	      __libc_missing_posix_timers = 1;				      \
-	      e = EINVAL;						      \
-	    }								      \
-	}								      \
-									      \
-      /* Fallback code.  */						      \
-      if (e == EINVAL && clock_id == CLOCK_REALTIME)			      \
-	HANDLE_REALTIME;						      \
-      else								      \
-	{								      \
-	  __set_errno (e);						      \
-	  retval = -1;							      \
-	}								      \
-    }									      \
-    break
-#endif
 
 #ifdef __NR_clock_settime
 /* We handled the REALTIME clock here.  */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h Fri Aug 17 00:01:45 2012
@@ -91,10 +91,6 @@
 #if defined __powerpc__ && !defined __powerpc64__
 # define __ASSUME_MMAP2_SYSCALL		1
 #endif
-
-/* Beginning with 2.5.63 support for realtime and monotonic clocks and
-   timers based on them is available.  */
-#define __ASSUME_POSIX_TIMERS		1
 
 /* Beginning with 2.6.12 the clock and timer supports CPU clocks.  */
 #define __ASSUME_POSIX_CPU_TIMERS	1

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits