[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...
- To: commits@xxxxxxxxxx
- Subject: [commits] r9123 - in /trunk: libc/ libc/csu/ libc/elf/ libc/include/ libc/locale/ libc/po/ libc/stdlib/ libc/sysdeps/i386/fpu/ libc/sy...
- From: joseph@xxxxxxxxxx
- Date: Thu, 22 Oct 2009 19:51:31 -0000
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