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

[commits] r9123 - in /trunk: libc/ libc/csu/ libc/elf/ libc/include/ libc/locale/ libc/po/ libc/stdlib/ libc/sysdeps/i386/fpu/ libc/sy...



Author: joseph
Date: Thu Oct 22 12:51:30 2009
New Revision: 9123

Log:
Merge changes between r9028 and r9122 from /fsf/trunk.

Added:
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
      - copied unchanged from r9122, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
      - copied unchanged from r9122, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
    trunk/ports/sysdeps/arm/eabi/abi-note.S
      - copied unchanged from r9122, fsf/trunk/ports/sysdeps/arm/eabi/abi-note.S
    trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S
      - copied unchanged from r9122, fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S
Modified:
    trunk/libc/ChangeLog
    trunk/libc/csu/elf-init.c
    trunk/libc/elf/dl-load.c
    trunk/libc/elf/dl-sym.c
    trunk/libc/include/math.h
    trunk/libc/locale/C-time.c
    trunk/libc/po/cs.po
    trunk/libc/stdlib/rand_r.c
    trunk/libc/stdlib/random_r.c
    trunk/libc/sysdeps/i386/fpu/s_expm1.S
    trunk/libc/sysdeps/i386/fpu/s_expm1f.S
    trunk/libc/sysdeps/i386/fpu/s_expm1l.S
    trunk/libc/sysdeps/ieee754/dbl-64/w_exp.c
    trunk/libc/sysdeps/ieee754/flt-32/w_expf.c
    trunk/libc/sysdeps/ieee754/ldbl-96/w_expl.c
    trunk/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
    trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
    trunk/libc/sysdeps/x86_64/multiarch/init-arch.h
    trunk/libc/sysdeps/x86_64/multiarch/strcasestr-c.c
    trunk/libc/sysdeps/x86_64/multiarch/strstr-c.c
    trunk/ports/ChangeLog.arm
    trunk/ports/ChangeLog.mips
    trunk/ports/sysdeps/arm/eabi/__longjmp.S
    trunk/ports/sysdeps/arm/eabi/setjmp.S
    trunk/ports/sysdeps/arm/elf/start.S
    trunk/ports/sysdeps/arm/sysdep.h
    trunk/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Thu Oct 22 12:51:30 2009
@@ -1,3 +1,75 @@
+2009-10-21  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* elf/dl-sym.c (do_sym): Resolve STT_GNU_IFUNC symbols.
+
+2009-10-19  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* include/math.h: Add hidden protos for __exp/__expf/__expl.
+	* sysdeps/ieee754/dbl-64/w_exp.c: Add hidden alias.
+	* sysdeps/ieee754/flt-32/w_expf.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/w_expl.c: Likewise.
+	* sysdeps/i386/fpu/s_expm1.S: Call __exp to handle overflow.
+	* sysdeps/i386/fpu/s_expm1f.S: Call __expf to handle overflow.
+	* sysdeps/i386/fpu/s_expm1l.S: Call __expl instead of
+	__ieee751_expl to handle overflow.
+
+2009-10-14  David S. Miller  <davem@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: New file.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: New file.
+
+2009-10-13  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* csu/elf-init.c (__libc_csu_init): Run preinit array even if
+	!USE_MULTIARCH.
+
+2009-10-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #10730]
+	* stdlib/random_r.c (__initstate_r): Remove duplicate __set-errno.
+	Patch in part by Steve Ward <planet36@xxxxxxxxx>.
+
+	[BZ #10731]
+	* stdlib/rand_r.c: Fix typo.
+
+	* po/cs.po: Update from translation team.
+
+2009-10-06  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* elf/dl-load.c (_dl_map_object_from_fd): Close fd before
+	returning if RTLD_NOLOAD.
+
+2009-10-06  Roland McGrath  <roland@xxxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/strstr-c.c
+	[! SHARED]: Omit libc_hidden_builtin_def fiddling.
+
+	* sysdeps/x86_64/multiarch/strcasestr-c.c: Remove
+	libc_hidden_builtin_def fiddling, does not apply to strcasestr at all.
+
+	* sysdeps/x86_64/multiarch/init-arch.h
+	[NOT_IN_libc] (__get_cpu_features): Define it as a macro.
+	(HAS_CPU_FEATURE): New macro.
+	(HAS_SSE2, HAS_POPCOUNT, HAS_SSE4_2, HAS_FMA): Use it.
+	* sysdeps/x86_64/multiarch/init-arch.c
+	(__get_cpu_features): #undef it before definition.
+
+2009-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* locale/C-time.c: Revert week-1stday back to 19971130 and set
+	first_weekday to 1 and first_workday to 2.
+
+2009-10-01  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Define F_SETOWN_EX and
+	F_GETOWN_EX.
+	* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
+	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
+
 2009-09-28  Andreas Schwab  <schwab@xxxxxxxxxx>
 
 	* stdio-common/printf_fp.c: Check for and avoid integer overflows.

Modified: trunk/libc/csu/elf-init.c
==============================================================================
--- trunk/libc/csu/elf-init.c (original)
+++ trunk/libc/csu/elf-init.c Thu Oct 22 12:51:30 2009
@@ -80,24 +80,26 @@
   /* For dynamically linked executables the preinit array is executed by
      the dynamic linker (before initializing any shared object.  */
 
-#if defined USE_MULTIARCH && !defined LIBC_NONSHARED
-# ifdef ELF_MACHINE_IRELA
+#ifndef LIBC_NONSHARED
+# ifdef USE_MULTIARCH
+#  ifdef ELF_MACHINE_IRELA
   {
     const size_t size = __rela_iplt_end - __rela_iplt_start;
     for (size_t i = 0; i < size; i++)
       elf_irela (&__rela_iplt_start [i]);
   }
-# endif
+#  endif
 
-# ifdef ELF_MACHINE_IREL
+#  ifdef ELF_MACHINE_IREL
   {
     const size_t size = __rel_iplt_end - __rel_iplt_start;
     for (size_t i = 0; i < size; i++)
       elf_irel (&__rel_iplt_start [i]);
   }
+#  endif
 # endif
 
-  /* For static executables, preinit happens rights before init.  */
+  /* For static executables, preinit happens right before init.  */
   {
     const size_t size = __preinit_array_end - __preinit_array_start;
     size_t i;

Modified: trunk/libc/elf/dl-load.c
==============================================================================
--- trunk/libc/elf/dl-load.c (original)
+++ trunk/libc/elf/dl-load.c Thu Oct 22 12:51:30 2009
@@ -903,9 +903,12 @@
 #endif
 
   if (mode & RTLD_NOLOAD)
-    /* We are not supposed to load the object unless it is already
-       loaded.  So return now.  */
-    return NULL;
+    {
+      /* We are not supposed to load the object unless it is already
+	 loaded.  So return now.  */
+      __close (fd);
+      return NULL;
+    }
 
   /* Print debugging message.  */
   if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))

Modified: trunk/libc/elf/dl-sym.c
==============================================================================
--- trunk/libc/elf/dl-sym.c (original)
+++ trunk/libc/elf/dl-sym.c Thu Oct 22 12:51:30 2009
@@ -190,6 +190,11 @@
       else
 #endif
 	value = DL_SYMBOL_ADDRESS (result, ref);
+
+      /* Resolve indirect function address.  */
+      if (__builtin_expect (ELFW(ST_TYPE) (ref->st_info) == STT_GNU_IFUNC, 0))
+	value
+	  = ((DL_FIXUP_VALUE_TYPE (*) (void)) DL_FIXUP_VALUE_ADDR (value)) ();
 
 #ifdef SHARED
       /* Auditing checkpoint: we have a new binding.  Provide the

Modified: trunk/libc/include/math.h
==============================================================================
--- trunk/libc/include/math.h (original)
+++ trunk/libc/include/math.h Thu Oct 22 12:51:30 2009
@@ -22,9 +22,12 @@
 
 libm_hidden_proto (__fpclassify)
 libm_hidden_proto (__fpclassifyf)
+libm_hidden_proto (__exp)
+libm_hidden_proto (__expf)
 
 # ifndef __NO_LONG_DOUBLE_MATH
 libm_hidden_proto (__fpclassifyl)
+libm_hidden_proto (__expl)
 libm_hidden_proto (__expm1l)
 # endif
 

Modified: trunk/libc/locale/C-time.c
==============================================================================
--- trunk/libc/locale/C-time.c (original)
+++ trunk/libc/locale/C-time.c Thu Oct 22 12:51:30 2009
@@ -134,10 +134,10 @@
     { .wstr = (const uint32_t *) L"" },
     { .wstr = (const uint32_t *) L"" },
     { .string = "\7" },
-    { .word = 19971201 },
+    { .word = 19971130 },
     { .string = "\4" },
-    { .string = "\7" },
     { .string = "\1" },
+    { .string = "\2" },
     { .string = "\1" },
     { .string = "" },
     { .string = "%a %b %e %H:%M:%S %Z %Y" },

Modified: trunk/libc/po/cs.po
==============================================================================
--- trunk/libc/po/cs.po (original)
+++ trunk/libc/po/cs.po Thu Oct 22 12:51:30 2009
@@ -22,9 +22,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: libc 2.9.90\n"
+"Project-Id-Version: libc 2.10.1\n"
 "POT-Creation-Date: 2009-02-06 12:40-0800\n"
-"PO-Revision-Date: 2009-03-02 10:03+0100\n"
+"PO-Revision-Date: 2009-10-08 21:33+0200\n"
 "Last-Translator: Petr Pisar <petr.pisar@xxxxxxxx>\n"
 "Language-Team: Czech <translation-team-cs@xxxxxxxxxxxxxxxxxxxxx>\n"
 "MIME-Version: 1.0\n"
@@ -4072,7 +4072,7 @@
 msgstr ""
 "konfigurace nscd:\n"
 "\n"
-"%15d  ladící úroveň serveru\n"
+"%15d  úroveň ladění serveru\n"
 
 #: nscd/nscd_stat.c:230
 #, c-format
@@ -4622,11 +4622,10 @@
 msgid "Unknown error"
 msgstr "Neznámá chyba"
 
-# Signál reálného času %d"
 #: string/strsignal.c:65
 #, c-format
 msgid "Real-time signal %d"
-msgstr "Real-timeový signál %d"
+msgstr "Signál reálného času %d"
 
 #: string/strsignal.c:69
 #, c-format
@@ -5313,11 +5312,11 @@
 
 #: sysdeps/generic/siglist.h:47 sysdeps/unix/siglist.c:47
 msgid "Stopped (tty input)"
-msgstr "Pozastaven (tty input) (SIGTTIN)"
+msgstr "Pozastaven (vstup TTY) (SIGTTIN)"
 
 #: sysdeps/generic/siglist.h:48 sysdeps/unix/siglist.c:48
 msgid "Stopped (tty output)"
-msgstr "Pozastaven (tty output) (SIGTTOU)"
+msgstr "Pozastaven (výstup TTY) (SIGTTOU)"
 
 #: sysdeps/generic/siglist.h:49 sysdeps/unix/siglist.c:49
 msgid "I/O possible"
@@ -5361,7 +5360,7 @@
 
 #: sysdeps/generic/siglist.h:66
 msgid "Stack fault"
-msgstr "Porušen zásobník (SIGSTKFLT)\""
+msgstr "Porušen zásobník (SIGSTKFLT)"
 
 #: sysdeps/generic/siglist.h:69
 msgid "Information request"
@@ -5373,7 +5372,7 @@
 
 #: sysdeps/generic/siglist.h:74 sysdeps/unix/siglist.c:55
 msgid "Resource lost"
-msgstr "Prostředek byl ztracen"
+msgstr "Prostředek byl ztracen (SIGLOST)"
 
 #. TRANS Operation not permitted; only the owner of the file (or other resource)
 #. TRANS or processes with special privileges can perform the operation.

Modified: trunk/libc/stdlib/rand_r.c
==============================================================================
--- trunk/libc/stdlib/rand_r.c (original)
+++ trunk/libc/stdlib/rand_r.c Thu Oct 22 12:51:30 2009
@@ -1,5 +1,5 @@
-/* Reentrant random function frm POSIX.1c.
-   Copyright (C) 1996, 1999 Free Software Foundation, Inc.
+/* Reentrant random function from POSIX.1c.
+   Copyright (C) 1996, 1999, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1996.
 

Modified: trunk/libc/stdlib/random_r.c
==============================================================================
--- trunk/libc/stdlib/random_r.c (original)
+++ trunk/libc/stdlib/random_r.c Thu Oct 22 12:51:30 2009
@@ -255,10 +255,8 @@
   else if (n < BREAK_1)
     {
       if (n < BREAK_0)
-	{
-	  __set_errno (EINVAL);
-	  goto fail;
-	}
+	goto fail;
+
       type = TYPE_0;
     }
   else

Modified: trunk/libc/sysdeps/i386/fpu/s_expm1.S
==============================================================================
--- trunk/libc/sysdeps/i386/fpu/s_expm1.S (original)
+++ trunk/libc/sysdeps/i386/fpu/s_expm1.S Thu Oct 22 12:51:30 2009
@@ -22,6 +22,7 @@
 
 	/* Using: e^x - 1 = 2^(x * log2(e)) - 1 */
 
+#include <sysdep.h>
 #include <machine/asm.h>
 
 #ifdef __ELF__
@@ -48,6 +49,11 @@
 
 	.text
 ENTRY(__expm1)
+	movzwl	4+6(%esp), %eax
+	xorb	$0x80, %ah	// invert sign bit (now 1 is "positive")
+	cmpl	$0xc086, %eax	// is num >= 704?
+	jae	HIDDEN_JUMPTARGET (__exp)
+
 	fldl	4(%esp)		// x
 	fxam			// Is NaN or +-Inf?
 	fstsw	%ax

Modified: trunk/libc/sysdeps/i386/fpu/s_expm1f.S
==============================================================================
--- trunk/libc/sysdeps/i386/fpu/s_expm1f.S (original)
+++ trunk/libc/sysdeps/i386/fpu/s_expm1f.S Thu Oct 22 12:51:30 2009
@@ -22,6 +22,7 @@
 
 	/* Using: e^x - 1 = 2^(x * log2(e)) - 1 */
 
+#include <sysdep.h>
 #include <machine/asm.h>
 
 #ifdef __ELF__
@@ -48,6 +49,11 @@
 
 	.text
 ENTRY(__expm1f)
+	movzwl	4+2(%esp), %eax
+	xorb	$0x80, %ah	// invert sign bit (now 1 is "positive")
+	cmpl	$0xc2b1, %eax	// is num >= 88.5?
+	jae	HIDDEN_JUMPTARGET (__expf)
+
 	flds	4(%esp)		// x
 	fxam			// Is NaN or +-Inf?
 	fstsw	%ax

Modified: trunk/libc/sysdeps/i386/fpu/s_expm1l.S
==============================================================================
--- trunk/libc/sysdeps/i386/fpu/s_expm1l.S (original)
+++ trunk/libc/sysdeps/i386/fpu/s_expm1l.S Thu Oct 22 12:51:30 2009
@@ -22,6 +22,7 @@
 
 	/* Using: e^x - 1 = 2^(x * log2(e)) - 1 */
 
+#include <sysdep.h>
 #include <machine/asm.h>
 
 #ifdef __ELF__
@@ -51,7 +52,7 @@
 	movzwl	4+8(%esp), %eax	// load sign bit and 15-bit exponent
 	xorb	$0x80, %ah	// invert sign bit (now 1 is "positive")
 	cmpl	$0xc006, %eax	// is num positive and exp >= 6 (number is >= 128.0)?
-	jae     __ieee754_expl	// (if num is denormal, it is at least >= 64.0)
+	jae	HIDDEN_JUMPTARGET (__expl) // (if num is denormal, it is at least >= 64.0)
 
 	fldt	4(%esp)		// x
 	fxam			// Is NaN or +-Inf?

Modified: trunk/libc/sysdeps/ieee754/dbl-64/w_exp.c
==============================================================================
--- trunk/libc/sysdeps/ieee754/dbl-64/w_exp.c (original)
+++ trunk/libc/sysdeps/ieee754/dbl-64/w_exp.c Thu Oct 22 12:51:30 2009
@@ -51,6 +51,7 @@
 	return z;
 #endif
 }
+hidden_def (__exp)
 weak_alias (__exp, exp)
 #ifdef NO_LONG_DOUBLE
 strong_alias (__exp, __expl)

Modified: trunk/libc/sysdeps/ieee754/flt-32/w_expf.c
==============================================================================
--- trunk/libc/sysdeps/ieee754/flt-32/w_expf.c (original)
+++ trunk/libc/sysdeps/ieee754/flt-32/w_expf.c Thu Oct 22 12:51:30 2009
@@ -56,4 +56,5 @@
 	return z;
 #endif
 }
+hidden_def (__expf)
 weak_alias (__expf, expf)

Modified: trunk/libc/sysdeps/ieee754/ldbl-96/w_expl.c
==============================================================================
--- trunk/libc/sysdeps/ieee754/ldbl-96/w_expl.c (original)
+++ trunk/libc/sysdeps/ieee754/ldbl-96/w_expl.c Thu Oct 22 12:51:30 2009
@@ -57,4 +57,5 @@
 	return z;
 #endif
 }
+hidden_def (__expl)
 weak_alias (__expl, expl)

Modified: trunk/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -85,13 +85,15 @@
 #define F_SETLKW64	14	/* Set record locking info (blocking).	*/
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	8	/* Get owner (process receiving SIGIO).  */
+# define F_GETOWN	9	/* Set owner (process receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -81,13 +81,15 @@
 #define F_SETLKW64	7	/* Set record locking info (blocking).	*/
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	8	/* Get owner (process receiving SIGIO).  */
+# define F_GETOWN	9	/* Set owner (process receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -85,13 +85,15 @@
 #define F_SETLKW64	14	/* Set record locking info (blocking).	*/
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	8	/* Get owner (process receiving of SIGIO).  */
+# define F_GETOWN	9	/* Set owner (process receiving of SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -100,13 +100,15 @@
 #endif
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	8	/* Get owner (process receiving SIGIO).  */
+# define F_GETOWN	9	/* Set owner (process receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -85,13 +85,15 @@
 #define F_SETLKW64	14	/* Set record locking info (blocking).	*/
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	8	/* Get owner (process receiving of SIGIO).  */
+# define F_GETOWN	9	/* Set owner (process receiving of SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving of SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving of SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -83,8 +83,8 @@
 #define F_GETFL		3	/* Get file status flags.  */
 #define F_SETFL		4	/* Set file status flags.  */
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_GETOWN	5	/* Get owner of socket (receiver of SIGIO).  */
-# define F_SETOWN	6	/* Set owner of socket (receiver of SIGIO).  */
+# define F_GETOWN	5	/* Get owner (process receiving SIGIO).  */
+# define F_SETOWN	6	/* Set owner (process receiving SIGIO).  */
 #endif
 #ifndef __USE_FILE_OFFSET64
 # define F_GETLK	7	/* Get record locking info.  */
@@ -99,6 +99,8 @@
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_GETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_SETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -99,13 +99,15 @@
 #endif
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	8	/* Get owner (process receiving of SIGIO).  */
+# define F_GETOWN	9	/* Set owner (process receiving of SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
==============================================================================
--- trunk/libc/sysdeps/x86_64/multiarch/init-arch.c (original)
+++ trunk/libc/sysdeps/x86_64/multiarch/init-arch.c Thu Oct 22 12:51:30 2009
@@ -77,6 +77,7 @@
     __cpu_features.kind = arch_kind_other;
 }
 
+#undef __get_cpu_features
 
 const struct cpu_features *
 __get_cpu_features (void)

Modified: trunk/libc/sysdeps/x86_64/multiarch/init-arch.h
==============================================================================
--- trunk/libc/sysdeps/x86_64/multiarch/init-arch.h (original)
+++ trunk/libc/sysdeps/x86_64/multiarch/init-arch.h Thu Oct 22 12:51:30 2009
@@ -58,30 +58,16 @@
 extern const struct cpu_features *__get_cpu_features (void)
      __attribute__ ((const));
 
+#ifndef NOT_IN_libc
+# define __get_cpu_features()	(&__cpu_features)
+#endif
+
+#define HAS_CPU_FEATURE(idx, reg, bit) \
+  ((__get_cpu_features ()->cpuid[idx].reg & (1 << (bit))) != 0)
+
 /* Following are the feature tests used throughout libc.  */
 
-#ifndef NOT_IN_libc
-# define HAS_SSE2 \
-  ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].edx & (1 << 26)) != 0)
-
-# define HAS_POPCOUNT \
-  ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & (1 << 23)) != 0)
-
-# define HAS_SSE4_2 \
-  ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & (1 << 20)) != 0)
-
-# define HAS_FMA \
-  ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & (1 << 12)) != 0)
-#else
-# define HAS_SSE2 \
-  ((__get_cpu_features ()->cpuid[COMMON_CPUID_INDEX_1].edx & (1 << 26)) != 0)
-
-# define HAS_POPCOUNT \
-  ((__get_cpu_features ()->cpuid[COMMON_CPUID_INDEX_1].ecx & (1 << 23)) != 0)
-
-# define HAS_SSE4_2 \
-  ((__get_cpu_features ()->cpuid[COMMON_CPUID_INDEX_1].ecx & (1 << 20)) != 0)
-
-# define HAS_FMA \
-  ((__get_cpu_features ()->cpuid[COMMON_CPUID_INDEX_1].ecx & (1 << 12)) != 0)
-#endif
+#define HAS_SSE2	HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, edx, 26)
+#define HAS_POPCOUNT	HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 23)
+#define HAS_SSE4_2	HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 20)
+#define HAS_FMA		HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12)

Modified: trunk/libc/sysdeps/x86_64/multiarch/strcasestr-c.c
==============================================================================
--- trunk/libc/sysdeps/x86_64/multiarch/strcasestr-c.c (original)
+++ trunk/libc/sysdeps/x86_64/multiarch/strcasestr-c.c Thu Oct 22 12:51:30 2009
@@ -1,9 +1,6 @@
 #include "init-arch.h"
 
 #define STRCASESTR __strcasestr_sse2
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name) \
-  __hidden_ver1 (__strcasestr_sse2, __GI_strcasestr, __strcasestr_sse2);
 
 #include "string/strcasestr.c"
 

Modified: trunk/libc/sysdeps/x86_64/multiarch/strstr-c.c
==============================================================================
--- trunk/libc/sysdeps/x86_64/multiarch/strstr-c.c (original)
+++ trunk/libc/sysdeps/x86_64/multiarch/strstr-c.c Thu Oct 22 12:51:30 2009
@@ -1,9 +1,11 @@
 #include "init-arch.h"
 
 #define STRSTR __strstr_sse2
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name) \
+#ifdef SHARED
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
   __hidden_ver1 (__strstr_sse2, __GI_strstr, __strstr_sse2);
+#endif
 
 #include "string/strstr.c"
 

Modified: trunk/ports/ChangeLog.arm
==============================================================================
--- trunk/ports/ChangeLog.arm (original)
+++ trunk/ports/ChangeLog.arm Thu Oct 22 12:51:30 2009
@@ -1,3 +1,31 @@
+2009-10-22  Daniel Gutson  <dgutson@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/arm/sysdep.h: (Tag_ABI_align8_preserved,
+	Tag_ABI_align8_needed): Attributes added.
+	* sysdeps/arm/elf/start.S: Likewise.
+	* sysdeps/arm/eabi/abi-note.S: New file.
+	* sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S: New
+	file.
+
+2009-10-22  Andrew Stubbs  <ams@xxxxxxxxxxxxxxxx>
+            Julian Brown  <julian@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/arm/eabi/setjmp.S (__sigsetjmp): Replace deprecated
+	instruction fstmiax with vstmia.
+	Correct register conflict and comment.
+	* sysdeps/arm/eabi/__longjmp.S (__longjmp): Use vldmia not fldmiax.
+	Don't clobber r1/a2 register before testing IWMMXT hwcap.
+
+2009-10-22  Julian Brown  <julian@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/arm/elf/start.S (_start): Avoid dependency on PC pipeline
+	offset.
+
+2009-10-03  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Define F_SETOWN_EX and
+	F_GETOWN_EX.
+
 2009-08-06  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/arm/____longjmp_chk.S: Remove.  Replaced by....

Modified: trunk/ports/ChangeLog.mips
==============================================================================
--- trunk/ports/ChangeLog.mips (original)
+++ trunk/ports/ChangeLog.mips Thu Oct 22 12:51:30 2009
@@ -1,3 +1,8 @@
+2009-10-03  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Define F_SETOWN_EX
+	and F_GETOWN_EX.
+
 2009-09-25  Daniel Jacobowitz  <dan@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h

Modified: trunk/ports/sysdeps/arm/eabi/__longjmp.S
==============================================================================
--- trunk/ports/sysdeps/arm/eabi/__longjmp.S (original)
+++ trunk/ports/sysdeps/arm/eabi/__longjmp.S Thu Oct 22 12:51:30 2009
@@ -59,12 +59,12 @@
 	beq	Lno_vfp
 
 	/* Restore the VFP registers.  */
-	/* Following instruction is fldmiax ip!, {d8-d15}.  */
-	ldc	p11, cr8, [r12], #68
+	/* Following instruction is vldmia ip!, {d8-d15}.  */
+	ldc	p11, cr8, [r12], #64
 	/* Restore the floating-point status register.  */
-	ldr     r1, [ip], #4
-	/* Following instruction is fmxr fpscr, r1.  */
-	mcr	p10, 7, r1, cr1, cr0, 0
+	ldr     a3, [ip], #4
+	/* Following instruction is fmxr fpscr, a3.  */
+	mcr	p10, 7, a3, cr1, cr0, 0
 Lno_vfp:
 
 	tst	a2, #HWCAP_ARM_IWMMXT

Modified: trunk/ports/sysdeps/arm/eabi/setjmp.S
==============================================================================
--- trunk/ports/sysdeps/arm/eabi/setjmp.S (original)
+++ trunk/ports/sysdeps/arm/eabi/setjmp.S Thu Oct 22 12:51:30 2009
@@ -52,13 +52,15 @@
 	tst	a3, #HWCAP_ARM_VFP
 	beq	Lno_vfp
 
-	/* Store the VFP registers.  */
-	/* Following instruction is fstmiax ip!, {d8-d15}.  */
-	stc	p11, cr8, [r12], #68
+	/* Store the VFP registers.
+	   Don't use VFP instructions directly because this code
+	   is used in non-VFP multilibs.  */
+	/* Following instruction is vstmia ip!, {d8-d15}.  */
+	stc	p11, cr8, [ip], #64
 	/* Store the floating-point status register.  */
-	/* Following instruction is fmrx r2, fpscr.  */
-	mrc	p10, 7, r2, cr1, cr0, 0
-	str	r2, [ip], #4
+	/* Following instruction is vmrs a4, fpscr.  */
+	mrc	p10, 7, a4, cr1, cr0, 0
+	str	a4, [ip], #4
 Lno_vfp:
 
 	tst	a3, #HWCAP_ARM_IWMMXT

Modified: trunk/ports/sysdeps/arm/elf/start.S
==============================================================================
--- trunk/ports/sysdeps/arm/elf/start.S (original)
+++ trunk/ports/sysdeps/arm/elf/start.S Thu Oct 22 12:51:30 2009
@@ -58,6 +58,16 @@
 		...
 					NULL
 */
+
+#if defined(__ARM_EABI__)
+/* Tag_ABI_align8_preserved: This code preserves 8-byte
+   alignment in any callee.  */
+	.eabi_attribute 25, 1
+/* Tag_ABI_align8_needed: This code may require 8-byte alignment from
+   the caller.  */
+	.eabi_attribute 24, 1
+#endif
+
 #if defined(__thumb2__)
 	.thumb
 	.syntax unified
@@ -87,8 +97,8 @@
 
 #ifdef SHARED
 	ldr sl, .L_GOT
-.L_GOT_OFF:
-	add sl, pc, sl
+	adr a4, .L_GOT
+	add sl, sl, a4
 
 	ldr ip, .L_GOT+4	/* __libc_csu_fini */
 	ldr ip, [sl, ip]
@@ -125,7 +135,7 @@
 
 #ifdef SHARED
 .L_GOT:
-	.word _GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8)
+	.word _GLOBAL_OFFSET_TABLE_ - .L_GOT
 	.word __libc_csu_fini(GOT)
 	.word __libc_csu_init(GOT)
 	.word main(GOT)

Modified: trunk/ports/sysdeps/arm/sysdep.h
==============================================================================
--- trunk/ports/sysdeps/arm/sysdep.h (original)
+++ trunk/ports/sysdeps/arm/sysdep.h Thu Oct 22 12:51:30 2009
@@ -105,4 +105,13 @@
 #define mcount		_mcount
 #endif
 
+#if defined(__ARM_EABI__)
+/* Tag_ABI_align8_preserved: This code preserves 8-byte
+   alignment in any callee.  */
+	.eabi_attribute 25, 1
+/* Tag_ABI_align8_needed: This code may require 8-byte alignment from
+   the caller.  */
+	.eabi_attribute 24, 1
+#endif
+
 #endif	/* __ASSEMBLER__ */

Modified: trunk/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
==============================================================================
--- trunk/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h (original)
+++ trunk/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -1,5 +1,5 @@
 /* O_*, F_*, FD_* bit values for Linux.
-   Copyright (C) 1995-1998, 2000, 2004, 2006, 2007
+   Copyright (C) 1995-1998, 2000, 2004, 2006, 2007, 2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -85,13 +85,15 @@
 #define F_SETLKW64	14	/* Set record locking info (blocking).	*/
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	8	/* Get owner (process receiving SIGIO).  */
+# define F_GETOWN	9	/* Set owner (process receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU

Modified: trunk/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
==============================================================================
--- trunk/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h (original)
+++ trunk/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h Thu Oct 22 12:51:30 2009
@@ -1,6 +1,6 @@
 /* O_*, F_*, FD_* bit values for Linux.
-   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2006, 2007
-	Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2006,
+   2007, 2009 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
@@ -87,13 +87,15 @@
 #define F_SETLKW64	35	/* Set record locking info (blocking).	*/
 
 #if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN	24	/* Get owner of socket (receiver of SIGIO).  */
-# define F_GETOWN	23	/* Set owner of socket (receiver of SIGIO).  */
+# define F_SETOWN	24	/* Get owner (process receiving SIGIO).  */
+# define F_GETOWN	23	/* Set owner (process receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	12	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	13	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU