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

[commits] r5697 - in /fsf/trunk/ports: ./ sysdeps/m68k/ sysdeps/unix/sysv/linux/mips/nptl/bits/ sysdeps/unix/sysv/linux/mips/sys/



Author: eglibc
Date: Sat Mar 29 00:04:25 2008
New Revision: 5697

Log:
Import glibc-ports-mainline for 2008-03-29

Modified:
    fsf/trunk/ports/ChangeLog.m68k
    fsf/trunk/ports/ChangeLog.mips
    fsf/trunk/ports/sysdeps/m68k/dl-machine.h
    fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h
    fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/tas.h

Modified: fsf/trunk/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/ports/ChangeLog.m68k (original)
+++ fsf/trunk/ports/ChangeLog.m68k Sat Mar 29 00:04:25 2008
@@ -1,3 +1,9 @@
+2008-03-28  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>
+
+	Explicitly get address of _DYNAMIC.
+	* sysdeps/m68k/dl-machine.h (elf_machine_dynamic): Retrieve _DYNAMIC
+	from GOT instead of assuming value at GOT pointer.
+
 2007-10-22  Daniel Jacobowitz  <dan@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h (F_DUPFD_CLOEXEC): Define.

Modified: fsf/trunk/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/ports/ChangeLog.mips (original)
+++ fsf/trunk/ports/ChangeLog.mips Sat Mar 29 00:04:25 2008
@@ -1,3 +1,13 @@
+2008-03-28  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h: Undefine
+	ARG_MAX if <linux/limits.h> has defined it.
+
+2008-03-28  Robin Randhawa  <robin@xxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Added memory
+	barriers to enforce strict ordering on weakly ordered systems.
+
 2008-03-26  David Stephenson  <david.stephenson@xxxxxxxxxxxx>
 	    Daniel Jacobowitz  <dan@xxxxxxxxxxxxxxxx>
 

Modified: fsf/trunk/ports/sysdeps/m68k/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/m68k/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/m68k/dl-machine.h Sat Mar 29 00:04:25 2008
@@ -33,14 +33,16 @@
 }
 
 
-/* Return the link-time address of _DYNAMIC.  Conveniently, this is the
-   first element of the GOT.  This must be inlined in a function which
-   uses global data.  */
+/* Return the link-time address of _DYNAMIC.
+   This must be inlined in a function which uses global data.  */
 static inline Elf32_Addr
 elf_machine_dynamic (void)
 {
-  register Elf32_Addr *got asm ("%a5");
-  return *got;
+  Elf32_Addr addr;
+
+  asm ("move.l _DYNAMIC@xxxxx(%%a5), %0"
+       : "=a" (addr));
+  return addr;
 }
 
 

Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h Sat Mar 29 00:04:25 2008
@@ -1,5 +1,5 @@
 /* Minimum guaranteed maximum values for system limits.  MIPS Linux version.
-   Copyright (C) 1993-1998,2000,2002,2003,2004,2007
+   Copyright (C) 1993-1998,2000,2002,2003,2004,2007,2008
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -32,6 +32,9 @@
 #ifndef OPEN_MAX
 # define __undef_OPEN_MAX
 #endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
 
 /* The kernel sources contain a file with all the needed information.  */
 #include <linux/limits.h>
@@ -50,6 +53,11 @@
 #ifdef __undef_OPEN_MAX
 # undef OPEN_MAX
 # undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX?  */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
 #endif
 
 /* The number of data keys per process.  */

Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/tas.h
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/tas.h (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/tas.h Sat Mar 29 00:04:25 2008
@@ -40,17 +40,19 @@
 
   __asm__ __volatile__
     ("/* Inline test and set */\n"
-     "1:\n\t"
      ".set	push\n\t"
 #if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
+     "sync\n\t"
+     "1:\n\t"
      "ll	%0,%3\n\t"
      "move	%1,%4\n\t"
      "beq	%0,%4,2f\n\t"
      "sc	%1,%2\n\t"
+     "beqz	%1,1b\n"
+     "sync\n\t"
      ".set	pop\n\t"
-     "beqz	%1,1b\n"
      "2:\n\t"
      "/* End test and set */"
      : "=&r" (r), "=&r" (t), "=m" (*p)