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

[Commits] r20054 - in /fsf/trunk/libc: ./ nptl/ nptl/sysdeps/pthread/ nptl/sysdeps/unix/sysv/linux/ ports/ ports/sysdeps/arm/ ports/sy...



Author: eglibc
Date: Thu Aug  9 00:01:37 2012
New Revision: 20054

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

Added:
    fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c
    fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/
    fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
Removed:
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/allocatestack.c
    fsf/trunk/libc/nptl/pthread_cancel.c
    fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c
    fsf/trunk/libc/ports/ChangeLog.alpha
    fsf/trunk/libc/ports/ChangeLog.arm
    fsf/trunk/libc/ports/ChangeLog.m68k
    fsf/trunk/libc/ports/ChangeLog.tile
    fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h
    fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h
    fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
    fsf/trunk/libc/sysdeps/posix/fdopendir.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Aug  9 00:01:37 2012
@@ -1,3 +1,16 @@
+2012-08-08  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_TGKILL):
+	Remove.
+
+2012-08-08  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/posix/fdopendir.c: Include <stddef.h>.
+
+	* sysdeps/unix/sysv/linux/readdir64_r.c: Update #include for
+	sysdeps/unix -> sysdeps/posix move.
+	* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
+
 2012-08-07	Allan McRae	<allan@xxxxxxxxxxxxx>
 
 	[BZ #14303]

Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Thu Aug  9 00:01:37 2012
@@ -1,3 +1,26 @@
+2012-08-08  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* allocatestack.c (setxid_signal_thread) [__ASSUME_TGKILL]: Make
+	code unconditional.
+	(setxid_signal_thread) [!__ASSUME_TGKILL]: Remove conditional code.
+	* pthread_cancel.c (pthread_cancel) [__ASSUME_TGKILL]: Make code
+	unconditional.
+	(pthread_cancel) [!__ASSUME_TGKILL]: Remove conditional code.
+	* sysdeps/pthread/createthread.c (do_clone) [__ASSUME_TGKILL]:
+	Make code unconditional.
+	(do_clone) [!__ASSUME_TGKILL]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/pt-raise.c (raise) [__ASSUME_TGKILL ||
+	__NR_tgkill]: Make code unconditional.
+	(raise) [__ASSUME_TGKILL]: Likewise.
+	(raise) [!__ASSUME_TGKILL]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill)
+	[__ASSUME_TGKILL]: Make code unconditional.
+	(__pthread_kill) [!__ASSUME_TGKILL]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/raise.c (raise) [__ASSUME_TGKILL ||
+	__NR_tgkill]: Make code unconditional.
+	(raise) [__ASSUME_TGKILL]: Likewise.
+	(raise) [!__ASSUME_TGKILL]: Remove conditional code.
+
 2012-08-07  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/pthread/createthread.c (create_thread)

Modified: fsf/trunk/libc/nptl/allocatestack.c
==============================================================================
--- fsf/trunk/libc/nptl/allocatestack.c (original)
+++ fsf/trunk/libc/nptl/allocatestack.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
 
@@ -1037,18 +1037,8 @@
 
   int val;
   INTERNAL_SYSCALL_DECL (err);
-#if __ASSUME_TGKILL
   val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
 			  t->tid, SIGSETXID);
-#else
-# ifdef __NR_tgkill
-  val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
-			  t->tid, SIGSETXID);
-  if (INTERNAL_SYSCALL_ERROR_P (val, err)
-      && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
-    val = INTERNAL_SYSCALL (tkill, err, 2, t->tid, SIGSETXID);
-#endif
 
   /* If this failed, it must have had not started yet or else exited.  */
   if (!INTERNAL_SYSCALL_ERROR_P (val, err))

Modified: fsf/trunk/libc/nptl/pthread_cancel.c
==============================================================================
--- fsf/trunk/libc/nptl/pthread_cancel.c (original)
+++ fsf/trunk/libc/nptl/pthread_cancel.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
 
@@ -75,20 +75,9 @@
 	     a signal handler.  But this is no allowed, pthread_cancel
 	     is not guaranteed to be async-safe.  */
 	  int val;
-#if __ASSUME_TGKILL
 	  val = INTERNAL_SYSCALL (tgkill, err, 3,
 				  THREAD_GETMEM (THREAD_SELF, pid), pd->tid,
 				  SIGCANCEL);
-#else
-# ifdef __NR_tgkill
-	  val = INTERNAL_SYSCALL (tgkill, err, 3,
-				  THREAD_GETMEM (THREAD_SELF, pid), pd->tid,
-				  SIGCANCEL);
-	  if (INTERNAL_SYSCALL_ERROR_P (val, err)
-	      && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
-	    val = INTERNAL_SYSCALL (tkill, err, 2, pd->tid, SIGCANCEL);
-#endif
 
 	  if (INTERNAL_SYSCALL_ERROR_P (val, err))
 	    result = INTERNAL_SYSCALL_ERRNO (val, err);

Modified: fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c Thu Aug  9 00:01:37 2012
@@ -109,13 +109,9 @@
 		 send it the cancellation signal.  */
 	      INTERNAL_SYSCALL_DECL (err2);
 	    err_out:
-#if __ASSUME_TGKILL
 	      (void) INTERNAL_SYSCALL (tgkill, err2, 3,
 				       THREAD_GETMEM (THREAD_SELF, pid),
 				       pd->tid, SIGCANCEL);
-#else
-	      (void) INTERNAL_SYSCALL (tkill, err2, 2, pd->tid, SIGCANCEL);
-#endif
 
 	      /* We do not free the stack here because the canceled thread
 		 itself will do this.  */

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
 
@@ -27,25 +27,13 @@
 raise (sig)
      int sig;
 {
-#if __ASSUME_TGKILL || defined __NR_tgkill
   /* raise is an async-safe function.  It could be called while the
      fork function temporarily invalidated the PID field.  Adjust for
      that.  */
   pid_t pid = THREAD_GETMEM (THREAD_SELF, pid);
   if (__builtin_expect (pid < 0, 0))
     pid = -pid;
-#endif
 
-#if __ASSUME_TGKILL
   return INLINE_SYSCALL (tgkill, 3, pid, THREAD_GETMEM (THREAD_SELF, tid),
 			 sig);
-#else
-# ifdef __NR_tgkill
-  int res = INLINE_SYSCALL (tgkill, 3, pid, THREAD_GETMEM (THREAD_SELF, tid),
-			    sig);
-  if (res != -1 || errno != ENOSYS)
-    return res;
-# endif
-  return INLINE_SYSCALL (tkill, 2, THREAD_GETMEM (THREAD_SELF, tid), sig);
-#endif
 }

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
 
@@ -58,18 +58,8 @@
      fork, it would have to happen in a signal handler.  But this is
      no allowed, pthread_kill is not guaranteed to be async-safe.  */
   int val;
-#if __ASSUME_TGKILL
   val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
 			  tid, signo);
-#else
-# ifdef __NR_tgkill
-  val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
-			  tid, signo);
-  if (INTERNAL_SYSCALL_ERROR_P (val, err)
-      && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
-    val = INTERNAL_SYSCALL (tkill, err, 2, tid, signo);
-#endif
 
   return (INTERNAL_SYSCALL_ERROR_P (val, err)
 	  ? INTERNAL_SYSCALL_ERRNO (val, err) : 0);

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
 
@@ -29,9 +29,7 @@
      int sig;
 {
   struct pthread *pd = THREAD_SELF;
-#if __ASSUME_TGKILL || defined __NR_tgkill
   pid_t pid = THREAD_GETMEM (pd, pid);
-#endif
   pid_t selftid = THREAD_GETMEM (pd, tid);
   if (selftid == 0)
     {
@@ -44,31 +42,18 @@
 #endif
       THREAD_SETMEM (pd, tid, selftid);
 
-#if __ASSUME_TGKILL || defined __NR_tgkill
       /* We do not set the PID field in the TID here since we might be
 	 called from a signal handler while the thread executes fork.  */
       pid = selftid;
-#endif
     }
-#if __ASSUME_TGKILL || defined __NR_tgkill
   else
     /* raise is an async-safe function.  It could be called while the
        fork/vfork function temporarily invalidated the PID field.  Adjust for
        that.  */
     if (__builtin_expect (pid <= 0, 0))
       pid = (pid & INT_MAX) == 0 ? selftid : -pid;
-#endif
 
-#if __ASSUME_TGKILL
   return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
-#else
-# ifdef __NR_tgkill
-  int res = INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
-  if (res != -1 || errno != ENOSYS)
-    return res;
-# endif
-  return INLINE_SYSCALL (tkill, 2, selftid, sig);
-#endif
 }
 libc_hidden_def (raise)
 weak_alias (raise, gsignal)

Modified: fsf/trunk/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.alpha (original)
+++ fsf/trunk/libc/ports/ChangeLog.alpha Thu Aug  9 00:01:37 2012
@@ -1,3 +1,30 @@
+2012-08-08  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
+	(__ASSUME_TGKILL): Remove.
+
+2012-08-08  Richard Henderson  <rth@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
+	(__ASSUME_IEEE_RAISE_EXCEPTION): Remove.
+	* sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S: New file.
+	* sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c: Remove.
+
+	* sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Use dwarf2
+	cfi markup for unwind.  Adjust stack early so that the normal
+	syscall error path can be used.
+	* sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
+
+	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
+	(__ASSUME_STAT64_SYSCALL): Remove.
+	* sysdeps/unix/sysv/linux/alpha/fxstat.c: Remove test
+	for __ASSUME_STAT64_SYSCALL.
+	* sysdeps/unsx/sysv/linux/alpha/fxstatat.c: Likewise.
+	* sysdeps/unsx/sysv/linux/alpha/lxstat.c: Likewise.
+	* sysdeps/unsx/sysv/linux/alpha/xstat.c: Likewise.
+	* sysdeps/unsx/sysv/linux/alpha/xstatconv.c: Likewise.
+	* sysdeps/unsx/sysv/linux/alpha/xstatconv.h: Likewise.
+
 2012-08-07  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/alpha/kernel-features.h

Modified: fsf/trunk/libc/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.arm (original)
+++ fsf/trunk/libc/ports/ChangeLog.arm Thu Aug  9 00:01:37 2012
@@ -1,3 +1,23 @@
+2012-08-08  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/arm/sotruss-lib.c: New file.
+
+	* sysdeps/arm/ldsodefs.h (ARCH_PLTEXIT_MEMBERS): Use const on
+	`struct La_arm_regs *' parameter.
+
+	* sysdeps/unix/sysv/linux/arm/dl-machine.h: Move #include outside of
+	[!dl_machine_h].
+
+	* sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+	[!__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4]
+	(__arch_compare_and_exchange_val_32_acq): Use uint32_t rather than
+	__typeof (...) for non-pointer variables derived from the arguments.
+
+	* sysdeps/arm/dl-irel.h: Include <ldsodefs.h>.
+
+	* sysdeps/arm/dl-machine.h (elf_machine_load_address): Use proper type
+	for __dl_start declaration.
+
 2012-08-07  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/arm/configure.in (arch_minimum_kernel):

Modified: fsf/trunk/libc/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.m68k (original)
+++ fsf/trunk/libc/ports/ChangeLog.m68k Thu Aug  9 00:01:37 2012
@@ -1,3 +1,16 @@
+2012-08-08  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
+	(__ASSUME_TGKILL): Remove.
+
+2012-08-08  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* sysdeps/m68k/coldfire/fpu/bits/mathinline.h: New file.
+
+	* sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
+	(atomic_compare_and_exchange_val_acq) [!SHARED]: Add cast to avoid
+	warning.
+
 2012-08-07  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/m68k/configure.in (arch_minimum_kernel):

Modified: fsf/trunk/libc/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.tile (original)
+++ fsf/trunk/libc/ports/ChangeLog.tile Thu Aug  9 00:01:37 2012
@@ -1,3 +1,8 @@
+2012-08-08  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/tile/kernel-features.h
+	(__ASSUME_TGKILL): Remove.
+
 2012-08-02  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
 
 	* sysdeps/tile/sysdep.h: Do not define ASM_TYPE_DIRECTIVE.

Modified: fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h Thu Aug  9 00:01:37 2012
@@ -1,6 +1,6 @@
 /* Machine-dependent ELF indirect relocation inline functions.
    ARM version.
-   Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2009-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
@@ -22,6 +22,7 @@
 
 #include <stdio.h>
 #include <unistd.h>
+#include <ldsodefs.h>
 
 #define ELF_MACHINE_IREL	1
 

Modified: fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h Thu Aug  9 00:01:37 2012
@@ -70,7 +70,7 @@
 static inline Elf32_Addr __attribute__ ((unused))
 elf_machine_load_address (void)
 {
-  extern void __dl_start asm ("_dl_start");
+  extern Elf32_Addr internal_function __dl_start (void *) asm ("_dl_start");
   Elf32_Addr got_addr = (Elf32_Addr) &__dl_start;
   Elf32_Addr pcrel_addr;
 #ifdef __thumb__

Modified: fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h Thu Aug  9 00:01:37 2012
@@ -1,5 +1,5 @@
 /* Run-time dynamic linker data structures for loaded ELF shared objects.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
@@ -32,7 +32,7 @@
 
 #define ARCH_PLTEXIT_MEMBERS \
     Elf32_Addr (*arm_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,   \
-				   uintptr_t *, struct La_arm_regs *,	     \
+				   uintptr_t *, const struct La_arm_regs *,  \
 				   struct La_arm_retval *, const char *)
 
 #include_next <ldsodefs.h>

Added: fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c (added)
+++ fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c Thu Aug  9 00:01:37 2012
@@ -1,0 +1,49 @@
+/* Override generic sotruss-lib.c to define actual functions for ARM.
+   Copyright (C) 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define HAVE_ARCH_PLTENTER
+#define HAVE_ARCH_PLTEXIT
+
+#include <elf/sotruss-lib.c>
+
+ElfW(Addr)
+la_arm_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
+                     unsigned int ndx __attribute__ ((unused)),
+                     uintptr_t *refcook, uintptr_t *defcook,
+                     La_arm_regs *regs, unsigned int *flags,
+                     const char *symname, long int *framesizep)
+{
+  print_enter (refcook, defcook, symname,
+	       regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
+	       *flags);
+
+  /* No need to copy anything, we will not need the parameters in any case.  */
+  *framesizep = 0;
+
+  return sym->st_value;
+}
+
+unsigned int
+la_arm_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
+                    uintptr_t *defcook, const struct La_arm_regs *inregs,
+                    struct La_arm_retval *outregs, const char *symname)
+{
+  print_exit (refcook, defcook, symname, outregs->lrv_reg[0]);
+
+  return 0;
+}

Added: fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h (added)
+++ fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h Thu Aug  9 00:01:37 2012
@@ -1,0 +1,44 @@
+/* Inline math functions for Coldfire.
+   Copyright (C) 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
+#endif
+
+#ifndef __extern_always_inline
+# define __MATH_INLINE __inline
+#else
+# define __MATH_INLINE __extern_always_inline
+#endif
+
+#if defined __USE_ISOC99 && defined __GNUC__
+
+/* Test for negative number.  Used in the signbit macro.  */
+__MATH_INLINE int
+__NTH (__signbitf (float __x))
+{
+  return __builtin_signbitf (__x);
+}
+
+__MATH_INLINE int
+__NTH (__signbit (double __x))
+{
+  return __builtin_signbit (__x);
+}
+
+#endif

Added: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S (added)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S Thu Aug  9 00:01:37 2012
@@ -1,0 +1,56 @@
+/* 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include "kernel_sysinfo.h"
+
+
+	.text
+
+ENTRY(__feraiseexcept)
+	cfi_startproc
+	PSEUDO_PROLOGUE
+
+	lda	sp, -16(sp)
+	cfi_adjust_cfa_offset(16)
+
+	ldi	v0, __NR_osf_setsysinfo
+	stq	a0, 0(sp)
+	mov	sp, a1
+	ldi	a0, SSI_IEEE_RAISE_EXCEPTION
+	call_pal PAL_callsys
+
+	lda	sp, 16(sp)
+	cfi_adjust_cfa_offset(-16)
+
+	/* Here in libm we can't use SYSCALL_ERROR_LABEL.  Nor is it clear
+	   that we'd want to set errno anyway.  All we're required to do is
+	   return non-zero on error.  Which is exactly A3.  */
+	mov	a3, v0
+	ret
+
+END(__feraiseexcept)
+	cfi_endproc
+
+#include <shlib-compat.h>
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__feraiseexcept, __old_feraiseexcept)
+compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
+#endif
+
+libm_hidden_ver (__feraiseexcept, feraiseexcept)
+versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);

Removed: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c (removed)
@@ -1,91 +1,0 @@
-/* Copyright (C) 2004,2006 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <float.h>
-#include <kernel-features.h>
-#include "kernel_sysinfo.h"
-
-
-int
-__feraiseexcept (int excepts)
-{
-  INTERNAL_SYSCALL_DECL (err);
-  unsigned long t = excepts;
-  long r;
-
-  r = INTERNAL_SYSCALL (osf_setsysinfo, err, 2, SSI_IEEE_RAISE_EXCEPTION, &t);
-
-#ifndef __ASSUME_IEEE_RAISE_EXCEPTION
-  if (!INTERNAL_SYSCALL_ERROR_P (r, err))
-    return 0;
-
-  double d;
-
-  /* If we got an error from SSI_IEEE_RAISE_EXCEPTION, assume it means that
-     the system call isn't actually implemented.  Do the best we can.  */
-
-  /* Invalid implemented with 0 / 0 -> NaN.  */
-  if (excepts & FE_INVALID)
-    __asm__ __volatile__ ("divs/su $f31,$f31,%0; trapb" : "=f"(d) : );
-
-  /* Division By Zero implemented with 1 / 0 -> NaN.  */
-  if (excepts & FE_DIVBYZERO)
-    __asm__ __volatile__ ("divs/su %1,$f31,%0; trapb" : "=&f"(d) : "f"(1.0f));
-
-  /* Overflow and underflow cannot be had all by themselves.  We can
-     generate them with arithmetic, but we always get INEXACT raised
-     at the same time.  Prepare to undo.  */
-  if ((excepts & (FE_OVERFLOW | FE_UNDERFLOW)) && !(excepts & FE_INEXACT))
-    INTERNAL_SYSCALL (osf_getsysinfo, err, 2, GSI_IEEE_FP_CONTROL, &t);
-
-  /* Overflow implemented with FLT_MAX + FLT_MAX -> Inf.  */
-  if (excepts & FE_OVERFLOW)
-    __asm__ __volatile__ ("adds/sui %1,%1,%0; trapb"
-			  : "=&f"(d) : "f"(FLT_MAX));
-
-  /* Underflow implemented with FLT_MIN * FLT_MIN -> 0.  */
-  if (excepts & FE_UNDERFLOW)
-    __asm__ __volatile__ ("muls/sui %1,%1,%0; trapb"
-			  : "=&f"(d) : "f"(FLT_MIN));
-
-  /* Inexact implemented with (long)0.5 -> 0.  */
-  if ((excepts & (FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)) == FE_INEXACT)
-    __asm__ __volatile__ ("cvttq/svi %1,%0; trapb" : "=&f"(d) : "f"(0.5f));
-
-  /* If we raised inexact when not asked, and inexact was not previously
-     raised, then clear that exception.  */
-  if ((excepts & (FE_OVERFLOW | FE_UNDERFLOW))
-      && !((excepts | t) & FE_INEXACT))
-    {
-      t |= excepts & SWCR_STATUS_MASK;
-      INTERNAL_SYSCALL (osf_setsysinfo, err, 2, SSI_IEEE_FP_CONTROL, &t);
-    }
-#endif /* !__ASSUME_IEEE_RAISE_EXCEPTION */
-
-  return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feraiseexcept, __old_feraiseexcept)
-compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
-#endif
-
-libm_hidden_ver (__feraiseexcept, feraiseexcept)
-versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c Thu Aug  9 00:01:37 2012
@@ -1,5 +1,5 @@
 /* fxstat using old-style Unix stat system call.
-   Copyright (C) 2004 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,7 +37,6 @@
   int result;
   struct kernel_stat kbuf;
 
-#if __ASSUME_STAT64_SYSCALL > 0
   if (vers == _STAT_VER_KERNEL64)
     {
       result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
@@ -46,22 +45,6 @@
       __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
       return -1;
     }
-#elif defined __NR_fstat64
-  if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
-    {
-      int errno_out;
-      result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
-      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-	return result;
-      errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
-      if (errno_out != ENOSYS)
-	{
-	  __set_errno (errno_out);
-	  return -1;
-	}
-      __libc_missing_axp_stat64 = 1;
-    }
-#endif
 
   result = INTERNAL_SYSCALL (fstat, err, 2, fd, &kbuf);
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -31,9 +31,6 @@
 
 #ifdef __ASSUME_ATFCTS
 # define __have_atfcts 1
-#endif
-#ifdef __ASSUME_STAT64_SYSCALL
-# define __libc_missing_axp_stat64 0
 #endif
 
 /* Get information about the file NAME in BUF.  */
@@ -99,38 +96,14 @@
       file = buf;
     }
 
-#ifdef __NR_stat64
-  if (!__libc_missing_axp_stat64)
-    {
-      if (flag & AT_SYMLINK_NOFOLLOW)
-	result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
-      else
-	result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
+  if (flag & AT_SYMLINK_NOFOLLOW)
+    result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
+  else
+    result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
+  if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+    return result;
 
-      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-	return result;
-      errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
-# if __ASSUME_STAT64_SYSCALL == 0
-      if (errno_out == ENOSYS)
-	__libc_missing_axp_stat64 = 1;
-      else
-# endif
-	goto fail;
-    }
-#endif /* __NR_stat64 */
-
-  struct kernel_stat kst;
-
-  if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lstat, err, 2, file, &kst);
-  else
-    result = INTERNAL_SYSCALL (stat, err, 2, file, &kst);
-
-  if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-    return __xstat_conv (vers, &kst, st);
   errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
-
- fail:
   __atfct_seterrno (errno_out, fd, buf);
 
   return -1;

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger <davidm@xxxxxxxxxxxxx>, 1995.
 
@@ -22,39 +22,29 @@
 
 	.text
 
-LEAF(__ieee_get_fp_control, 16)
-#ifdef PROF
-	ldgp	gp, 0(pv)
+ENTRY(__ieee_get_fp_control)
+	cfi_startproc
+	PSEUDO_PROLOGUE
+
 	lda	sp, -16(sp)
-	.set noat
-	lda	AT, _mcount
-	jsr	AT, (AT), _mcount
-	.set at
-	.prologue 1
-#elif defined PIC
-	lda	sp, -16(sp)
-	.prologue 0
-#else
-	ldgp	gp, 0(pv)
-	lda	sp, -16(sp)
-	.prologue 1
-#endif
+	cfi_adjust_cfa_offset(16)
 
 	mov	sp, a1
 	ldi	a0, GSI_IEEE_FP_CONTROL
 	ldi	v0, __NR_osf_getsysinfo
 	call_pal PAL_callsys
-	bne	a3, $error
 
-	ldq	v0, 0(sp)
+	ldq	t0, 0(sp)
 	lda	sp, 16(sp)
+	cfi_adjust_cfa_offset(-16)
+
+	bne	a3, SYSCALL_ERROR_LABEL
+
+	mov	t0, v0
 	ret
 
-$error:
-	lda	sp, 16(sp)
-	SYSCALL_ERROR_HANDLER
-
-	END(__ieee_get_fp_control)
+PSEUDO_END(__ieee_get_fp_control)
+	cfi_endproc
 
 libc_hidden_def(__ieee_get_fp_control)
 weak_alias (__ieee_get_fp_control, ieee_get_fp_control)

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S Thu Aug  9 00:01:37 2012
@@ -1,5 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 1997, 2003, 2004
-   Free Software Foundation, Inc.
+/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger <davidm@xxxxxxxxxxxxx>, 1995.
 
@@ -21,40 +20,27 @@
 #include "kernel_sysinfo.h"
 
 
-LEAF(__ieee_set_fp_control, 16)
-#ifdef PROF
-	ldgp	gp, 0(pv)
+ENTRY(__ieee_set_fp_control)
+	cfi_startproc
+	PSEUDO_PROLOGUE
+
 	lda	sp, -16(sp)
-	.set noat
-	lda	AT, _mcount
-	jsr	AT, (AT), _mcount
-	.set at
-	.prologue 1
-#elif defined PIC
-	lda	sp, -16(sp)
-	.prologue 0
-#else
-	ldgp	gp, 0(pv)
-	lda	sp, -16(sp)
-	.prologue 1
-#endif
+	cfi_adjust_cfa_offset(16)
 
+	ldi	v0, __NR_osf_setsysinfo
 	stq	a0, 0(sp)
 	mov	sp, a1
 	ldi	a0, SSI_IEEE_FP_CONTROL
-	ldi	v0, __NR_osf_setsysinfo
 	call_pal PAL_callsys
 
-	bne	a3, $error
+	lda	sp, 16(sp)
+	cfi_adjust_cfa_offset(-16)
 
-	lda	sp, 16(sp)
+	bne	a3, SYSCALL_ERROR_LABEL
 	ret
 
-$error:
-	lda	sp, 16(sp)
-	SYSCALL_ERROR_HANDLER
-
-	END(__ieee_set_fp_control)
+PSEUDO_END(__ieee_set_fp_control)
+	cfi_endproc
 
 libc_hidden_def(__ieee_set_fp_control)
 weak_alias (__ieee_set_fp_control, ieee_set_fp_control)

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h Thu Aug  9 00:01:37 2012
@@ -20,16 +20,7 @@
 #ifndef _KERNEL_FEATURES_H
 #define _KERNEL_FEATURES_H 1
 
-/* The tgkill syscall was introduced for alpha 2.6.0-test1.  */
-#define __ASSUME_TGKILL	1
-
-/* Starting with version 2.6.4, the stat64 syscalls are available.  */
-#define __ASSUME_STAT64_SYSCALL   1
-
 #define __ASSUME_UTIMES	1
-
-/* Starting with version 2.6.9, SSI_IEEE_RAISE_EXCEPTION exists.  */
-#define __ASSUME_IEEE_RAISE_EXCEPTION	1
 
 /* Support for the O_CLOEXEC flag was added for alpha in 2.6.23.  */
 #if __LINUX_KERNEL_VERSION >= 0x020617

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c Thu Aug  9 00:01:37 2012
@@ -1,5 +1,5 @@
 /* lxstat using old-style Unix stat system call.
-   Copyright (C) 2004 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,7 +37,6 @@
   int result;
   struct kernel_stat kbuf;
 
-#if __ASSUME_STAT64_SYSCALL > 0
   if (vers == _STAT_VER_KERNEL64)
     {
       result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
@@ -46,22 +45,6 @@
       __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
       return -1;
     }
-#elif defined __NR_lstat64
-  if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
-    {
-      int errno_out;
-      result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
-      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-	return result;
-      errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
-      if (errno_out != ENOSYS)
-	{
-	  __set_errno (errno_out);
-	  return -1;
-	}
-      __libc_missing_axp_stat64 = 1;
-    }
-#endif
 
   result = INTERNAL_SYSCALL (lstat, err, 2, name, &kbuf);
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c Thu Aug  9 00:01:37 2012
@@ -1,5 +1,5 @@
 /* xstat using old-style Unix stat system call.
-   Copyright (C) 2004 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,7 +37,6 @@
   int result;
   struct kernel_stat kbuf;
 
-#if __ASSUME_STAT64_SYSCALL > 0
   if (vers == _STAT_VER_KERNEL64)
     {
       result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
@@ -46,22 +45,6 @@
       __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
       return -1;
     }
-#elif defined __NR_stat64
-  if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
-    {
-      int errno_out;
-      result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
-      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-	return result;
-      errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
-      if (errno_out != ENOSYS)
-	{
-	  __set_errno (errno_out);
-	  return -1;
-	}
-      __libc_missing_axp_stat64 = 1;
-    }
-#endif
 
   result = INTERNAL_SYSCALL (stat, err, 2, name, &kbuf);
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c Thu Aug  9 00:01:37 2012
@@ -1,5 +1,5 @@
 /* Convert between the kernel's `struct stat' format, and libc's.
-   Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1997-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
@@ -22,13 +22,6 @@
 #include <kernel_stat.h>
 #include <xstatconv.h>
 #include <sys/syscall.h>
-
-
-#ifdef __NR_stat64
-# if __ASSUME_STAT64_SYSCALL == 0
-int __libc_missing_axp_stat64;
-# endif
-#endif
 
 int
 __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h Thu Aug  9 00:01:37 2012
@@ -1,5 +1,5 @@
 /* Convert between the kernel's `struct stat' format, and libc's.
-   Copyright (C) 2004, 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
@@ -19,10 +19,5 @@
 #include <kernel-features.h>
 #include <sys/syscall.h>
 
-#ifdef __NR_stat64
-# if __ASSUME_STAT64_SYSCALL == 0
-extern int __libc_missing_axp_stat64 attribute_hidden;
-# endif
-#endif
 extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
   attribute_hidden;

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h Thu Aug  9 00:01:37 2012
@@ -22,7 +22,9 @@
 #define CLEAR_CACHE(BEG,END)                                            \
   INTERNAL_SYSCALL_ARM (cacheflush, , 3, (BEG), (END), 0)
 
-/* The rest is just machine-specific.  */
+#endif
+
+/* The rest is just machine-specific.
+   This #include is outside the #ifndef because the parts of
+   dl-machine.h used only by dynamic-link.h are outside the guard.  */
 #include <sysdeps/arm/dl-machine.h>
-
-#endif

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -74,17 +74,24 @@
 
 /* It doesn't matter what register is used for a_oldval2, but we must
    specify one to work around GCC PR rtl-optimization/21223.  Otherwise
-   it may cause a_oldval or a_tmp to be moved to a different register.  */
+   it may cause a_oldval or a_tmp to be moved to a different register.
 
+   We use the union trick rather than simply using __typeof (...) in the
+   declarations of A_OLDVAL et al because when NEWVAL or OLDVAL is of the
+   form *PTR and PTR has a 'volatile ... *' type, then __typeof (*PTR) has
+   a 'volatile ...' type and this triggers -Wvolatile-register-var to
+   complain about 'register volatile ... asm ("reg")'.  */
 #elif defined __thumb2__
 /* Thumb-2 has ldrex/strex.  However it does not have barrier instructions,
    so we still need to use the kernel helper.  */
 #define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-  ({ register __typeof (oldval) a_oldval asm ("r0");			      \
-     register __typeof (oldval) a_newval asm ("r1") = (newval);		      \
+  ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+     union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
+     register uint32_t a_oldval asm ("r0");				      \
+     register uint32_t a_newval asm ("r1") = newval_arg.v;		      \
      register __typeof (mem) a_ptr asm ("r2") = (mem);			      \
-     register __typeof (oldval) a_tmp asm ("r3");			      \
-     register __typeof (oldval) a_oldval2 asm ("r4") = (oldval);	      \
+     register uint32_t a_tmp asm ("r3");				      \
+     register uint32_t a_oldval2 asm ("r4") = oldval_arg.v;		      \
      __asm__ __volatile__						      \
 	     ("0:\tldr\t%[tmp],[%[ptr]]\n\t"				      \
 	      "cmp\t%[tmp], %[old2]\n\t"				      \
@@ -100,14 +107,16 @@
 	      : [new] "r" (a_newval), [ptr] "r" (a_ptr),		      \
 		[old2] "r" (a_oldval2)					      \
 	      : "ip", "lr", "cc", "memory");				      \
-     a_tmp; })
+     (__typeof (oldval)) a_tmp; })
 #else
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-  ({ register __typeof (oldval) a_oldval asm ("r0");			      \
-     register __typeof (oldval) a_newval asm ("r1") = (newval);		      \
+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval)	      \
+  ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+     union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
+     register uint32_t a_oldval asm ("r0");				      \
+     register uint32_t a_newval asm ("r1") = newval_arg.v;		      \
      register __typeof (mem) a_ptr asm ("r2") = (mem);			      \
-     register __typeof (oldval) a_tmp asm ("r3");			      \
-     register __typeof (oldval) a_oldval2 asm ("r4") = (oldval);	      \
+     register uint32_t a_tmp asm ("r3");				      \
+     register uint32_t a_oldval2 asm ("r4") = oldval_arg.v;		      \
      __asm__ __volatile__						      \
 	     ("0:\tldr\t%[tmp],[%[ptr]]\n\t"				      \
 	      "cmp\t%[tmp], %[old2]\n\t"				      \
@@ -123,7 +132,7 @@
 	      : [new] "r" (a_newval), [ptr] "r" (a_ptr),		      \
 		[old2] "r" (a_oldval2)					      \
 	      : "ip", "lr", "cc", "memory");				      \
-     a_tmp; })
+     (__typeof (oldval)) a_tmp; })
 #endif
 
 #define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>, 2010.
 
@@ -42,8 +42,8 @@
 #ifdef SHARED
 # define atomic_compare_and_exchange_val_acq(mem, newval, oldval)	\
   ({									\
-    /* Use temporary variables to workaround call-clobberness of */	\
-    /* the registers.  */						\
+    /* Use temporary variables to workaround call-clobberness of 	\
+       the registers.  */						\
     __typeof (mem) _mem = mem;						\
     __typeof (oldval) _oldval = oldval;					\
     __typeof (newval) _newval = newval;					\
@@ -65,13 +65,13 @@
 #else
 # define atomic_compare_and_exchange_val_acq(mem, newval, oldval)	\
   ({									\
-    /* Use temporary variables to workaround call-clobberness of */	\
-    /* the registers.  */						\
+    /* Use temporary variables to workaround call-clobberness of 	\
+       the registers.  */						\
     __typeof (mem) _mem = mem;						\
     __typeof (oldval) _oldval = oldval;					\
     __typeof (newval) _newval = newval;					\
     register __typeof (oldval) _d0 asm ("d0")				\
-      = SYS_ify (atomic_cmpxchg_32);					\
+      = (__typeof (oldval)) SYS_ify (atomic_cmpxchg_32);		\
     register __typeof (mem) _a0 asm ("a0") = _mem;			\
     register __typeof (oldval) _d2 asm ("d2") = _oldval;		\
     register __typeof (newval) _d1 asm ("d1") = _newval;		\

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h Thu Aug  9 00:01:37 2012
@@ -22,7 +22,6 @@
 #define __ASSUME_STAT64_SYSCALL	1
 
 /* Many syscalls were added in 2.6.10 for m68k.  */
-#define __ASSUME_TGKILL	1
 #define __ASSUME_UTIMES	1
 #define __ASSUME_FADVISE64_64_SYSCALL	1
 

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h Thu Aug  9 00:01:37 2012
@@ -21,7 +21,6 @@
 #define __ASSUME_MMAP2_SYSCALL		1
 #define __ASSUME_STAT64_SYSCALL		1
 #define __ASSUME_CLONE_THREAD_FLAGS	1
-#define __ASSUME_TGKILL			1
 #define __ASSUME_UTIMES			1
 #define __ASSUME_FADVISE64_64_SYSCALL	1
 #define __ASSUME_O_CLOEXEC		1

Modified: fsf/trunk/libc/sysdeps/posix/fdopendir.c
==============================================================================
--- fsf/trunk/libc/sysdeps/posix/fdopendir.c (original)
+++ fsf/trunk/libc/sysdeps/posix/fdopendir.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -18,6 +18,7 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <stddef.h>
 #include <sys/stat.h>
 
 #include <not-cancel.h>

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c Thu Aug  9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2004, 2010 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
@@ -20,7 +20,7 @@
 #define DIRENT_TYPE struct dirent64
 #define GETDENTS_64BIT_ALIGNED 1
 
-#include <sysdeps/unix/readdir_r.c>
+#include <sysdeps/posix/readdir_r.c>
 
 #undef __READDIR_R
 #undef __GETDENTS
@@ -38,7 +38,7 @@
 #define __GETDENTS __old_getdents64
 #define DIRENT_TYPE struct __old_dirent64
 
-#include <sysdeps/unix/readdir_r.c>
+#include <sysdeps/posix/readdir_r.c>
 
 compat_symbol (libc, __old_readdir64_r, readdir64_r, GLIBC_2_1);
 #endif

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 Thu Aug  9 00:01:37 2012
@@ -112,13 +112,6 @@
 
 /* The statfs64 syscalls are available in 2.5.74 (but not for alpha).  */
 #define __ASSUME_STATFS64	1
-
-/* The tgkill syscall was instroduced for i386 in 2.5.75.  On x86-64,
-   sparc, SH, ppc, and ppc64 it was introduced in 2.6.0-test3. */
-#if (defined __i386__ || defined __x86_64__ || defined __powerpc__	\
-     || defined __sh__ || defined __sparc__)
-# define __ASSUME_TGKILL	1
-#endif
 
 /* The utimes syscall has been available for some architectures
    forever.  For x86 it was introduced after 2.5.75, for x86-64,

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c Thu Aug  9 00:01:37 2012
@@ -2,6 +2,6 @@
 #define __GETDENTS __getdents64
 #define DIRENT_TYPE struct dirent64
 
-#include <sysdeps/unix/readdir_r.c>
+#include <sysdeps/posix/readdir_r.c>
 
 weak_alias (__readdir64_r, readdir64_r)

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