Skip to content

Commit

Permalink
Merge commit 'origin/master' into fedora/master
Browse files Browse the repository at this point in the history
  • Loading branch information
Andreas Schwab committed Jul 27, 2009
2 parents 9285e82 + 16d2ea4 commit e1a5136
Show file tree
Hide file tree
Showing 45 changed files with 4,437 additions and 358 deletions.
106 changes: 106 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,111 @@
2009-07-26 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/tst-xmmymm.sh: New file. Check whether any of the
functions used in ld.so modify xmm/ymm registers.
* sysdeps/x86_64/Makefile: Hook new test up.
* sysdeps/x86_64/rtld-memchr.c: New file.
* sysdeps/x86_64/rtld-memcmp.c: New file.
* sysdeps/x86_64/rtld-rawmemchr.c: New file.
* sysdeps/x86_64/rtld-strchr.S: New file.
* sysdeps/x86_64/rtld-strcmp.S: New file.
* sysdeps/x86_64/rtld-strlen.S: New file.
* sysdeps/x86_64/multiarch/rtld-rawmemchr.c: New file.
* sysdeps/x86_64/multiarch/rtld-strlen.S: New file.

2009-07-26 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Remove
strncmp-c.
* sysdeps/x86_64/multiarch/strcmp.S (aftertail): Removed.
(exit): Likewise.
(Byte1): Likewise.
(Byte2): Likewise.
(Byte3): Likewise.
(Byte4): Likewise.
(Byte5): Likewise.
(Byte6): Likewise.
(next_8_bytes): Likewise.
(Byte0): Remove commented out codes.
(unaligned_table): Align jump table at 8 bytes.
Add _sse4_2 to all labels. Always include "../strcmp.S".
* sysdeps/x86_64/multiarch/strncmp-c.c: Removed.
* sysdeps/x86_64/strcmp.S: Add SSE2 support.
* sysdeps/x86_64/strncmp.S: New file.

2009-07-26 Ulrich Drepper <drepper@redhat.com>

[BZ #10422]
* sysdeps/unix/sysv/linux/eventfd.c: Add compatibility for old
kernels, dropped when eventfd2 support was added.
* sysdeps/unix/sysv/linux/signalfd.c: Add compatibility for old
kernels, dropped when signalfd4 support was added.
* sysdeps/unix/sysv/linux/kernel-features.h: More CLOEXEC syscalls
added, name them.

[BZ #10452]
* resolv/res_send.c (send_dg): Pass full SERVFAIL, NOTIMP, REFUSED
replies up.

* elf/elf.h: Define NT_GNU_GOLD_VERSION.

2009-07-25 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/multiarch/strcmp.S: Some more optimizations for
modern processor versions. Patch by H.J. Lu <hongjiu.lu@intel.com>.

[BZ #10448]
* sysdeps/posix/getaddrinfo.c (gaih_inet): If NSS module contains no
callback we must touch the status to avoid using stale value.

* sysdeps/x86_64/multiarch/strcmp.S: Exclude unused code from being
compiled in.

2009-07-24 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/configure.in: Don't automatically include
/lib/modules/* headers anymore. We have sane headers in the standard
place now.

2009-06-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>

* sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): "hpage",
"etf3enh" and "highgprs" added.
(_dl_s390_platforms): "z10" added.
* sysdeps/s390/dl-procinfo.h (_DL_HWCAP_COUNT, _DL_PLATFORMS_COUNT):
Increased for the new entries.
(HWCAP enum): HWCAP_S390_HPAGE, HWCAP_S390_ETF3EH and
HWCAP_S390_HIGH_GPRS added.

* sysdeps/s390/s390-64/Makefile: Adjusted to build the new modules.
* sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c: New file.
* sysdeps/s390/s390-64/utf16-utf32-z9.c: New file.
* sysdeps/s390/s390-64/utf8-utf16-z9.c: New file.
* sysdeps/s390/s390-64/utf8-utf32-z9.c: New file.

2009-07-23 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/cacheinfo.c [USE_MULTIARCH]: Rearrange code to
avoid additional cpuid instructions. Most of the information is
stored somewhere.

* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_02_known): Add more
cache descriptors.
* sysdeps/x86_64/cacheinfo.c (intel_02_known): Likewise.

* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Reset
SSSE3 bit for Atoms.
* sysdeps/x86_64/multiarch/strcpy.S: New need to perform Atom test
here anymore.

* posix/tst-rfc3484.c (do_test): Initialize entire sockaddr_in
structure before copying it to avoid warning.
* posix/tst-rfc3484-2.c (do_test): Likewise.
* posix/tst-rfc3484-3.c (do_test): Likewise.

[BZ #10416]
* include/unistd.h: Make header file suitable for C++ test cases.
Patch by Duncan Simpson <dps@simpson.demon.co.uk>.

* sysdeps/unix/sysv/linux/i386/makecontext.S: Ensure we preserve the
stack alignment in the exit code.

Expand Down
3 changes: 3 additions & 0 deletions elf/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -1054,6 +1054,9 @@ typedef struct
The descriptor consists of any nonzero number of bytes. */
#define NT_GNU_BUILD_ID 3

/* Version note generated by GNU gold containing a version string. */
#define NT_GNU_GOLD_VERSION 4


/* Move records. */
typedef struct
Expand Down
4 changes: 4 additions & 0 deletions include/unistd.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef _UNISTD_H
# include <posix/unistd.h>

__BEGIN_DECLS

libc_hidden_proto (_exit, __noreturn__)
libc_hidden_proto (alarm)
libc_hidden_proto (confstr)
Expand Down Expand Up @@ -174,4 +176,6 @@ extern int __have_sock_cloexec;
unless it is really necessary. */
#define __have_pipe2 __have_sock_cloexec

__END_DECLS

#endif
14 changes: 14 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
2009-07-26 Ulrich Drepper <drepper@redhat.com>

[BZ #10418]
* pthread_mutex_lock.c (pthread_mutex_lock): Use _rel instead of of
_acq variants of cmpxchg.
* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.

2009-07-23 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/configure.in: New file.

* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix error
path when not using absolute timeout futex.

2009-07-20 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Minor
Expand Down
12 changes: 6 additions & 6 deletions nptl/pthread_mutex_lock.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc.
/* Copyright (C) 2002-2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
Expand Down Expand Up @@ -160,7 +160,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
#endif

newval
= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
= atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
newval, oldval);

if (newval != oldval)
Expand Down Expand Up @@ -285,7 +285,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
#ifdef NO_INCR
newval |= FUTEX_WAITERS;
#endif
oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
oldval = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
newval, 0);

if (oldval != 0)
Expand Down Expand Up @@ -420,7 +420,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
oldprio = ceiling;

oldval
= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
= atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
#ifdef NO_INCR
ceilval | 2,
#else
Expand All @@ -434,7 +434,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
do
{
oldval
= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
= atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
ceilval | 2,
ceilval | 1);

Expand All @@ -445,7 +445,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
lll_futex_wait (&mutex->__data.__lock, ceilval | 2,
PTHREAD_MUTEX_PSHARED (mutex));
}
while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
while (atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
ceilval | 2, ceilval)
!= ceilval);
}
Expand Down
12 changes: 6 additions & 6 deletions nptl/pthread_mutex_timedlock.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc.
/* Copyright (C) 2002-2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
Expand Down Expand Up @@ -126,7 +126,7 @@ pthread_mutex_timedlock (mutex, abstime)
int newval = id | (oldval & FUTEX_WAITERS);

newval
= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
= atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
newval, oldval);
if (newval != oldval)
{
Expand Down Expand Up @@ -246,7 +246,7 @@ pthread_mutex_timedlock (mutex, abstime)
}
}

oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
oldval = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
id, 0);

if (oldval != 0)
Expand Down Expand Up @@ -404,7 +404,7 @@ pthread_mutex_timedlock (mutex, abstime)
oldprio = ceiling;

oldval
= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
= atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
ceilval | 1, ceilval);

if (oldval == ceilval)
Expand All @@ -413,7 +413,7 @@ pthread_mutex_timedlock (mutex, abstime)
do
{
oldval
= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
= atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
ceilval | 2,
ceilval | 1);

Expand Down Expand Up @@ -456,7 +456,7 @@ pthread_mutex_timedlock (mutex, abstime)
PTHREAD_MUTEX_PSHARED (mutex));
}
}
while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
while (atomic_compare_and_exchange_val_rel (&mutex->__data.__lock,
ceilval | 2, ceilval)
!= ceilval);
}
Expand Down
4 changes: 2 additions & 2 deletions nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
Original file line number Diff line number Diff line change
Expand Up @@ -551,12 +551,12 @@ __pthread_cond_timedwait:
jne 53b

cmpq 24(%rsp), %r9
jbe 45b
jbe 15f

cmpq %rax, %r9
ja 39b

cmpq $-ETIMEDOUT, %r14
15: cmpq $-ETIMEDOUT, %r14
jne 8b

jmp 99b
Expand Down
36 changes: 36 additions & 0 deletions nptl/sysdeps/x86_64/configure
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/i386.

{ echo "$as_me:$LINENO: checking for .cfi_personality and .cfi_lsda pseudo-ops" >&5
echo $ECHO_N "checking for .cfi_personality and .cfi_lsda pseudo-ops... $ECHO_C" >&6; }
if test "${libc_cv_asm_cfi_personality+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat > conftest.s <<EOF
${libc_cv_dot_text}
foo:
.cfi_startproc
.cfi_personality 0, foo
.cfi_lsda 0, foo
.cfi_endproc
EOF
if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
libc_cv_asm_cfi_personality=yes
else
libc_cv_asm_cfi_personality=no
fi
rm -f conftest*

fi
{ echo "$as_me:$LINENO: result: $libc_cv_asm_cfi_personality" >&5
echo "${ECHO_T}$libc_cv_asm_cfi_personality" >&6; }
if test x"$libc_cv_asm_cfi_personality" != xyes; then
{ { echo "$as_me:$LINENO: error: assembler too old, .cfi_personality support missing" >&5
echo "$as_me: error: assembler too old, .cfi_personality support missing" >&2;}
{ (exit 1); exit 1; }; }
fi
23 changes: 23 additions & 0 deletions nptl/sysdeps/x86_64/configure.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/i386.

AC_CACHE_CHECK([for .cfi_personality and .cfi_lsda pseudo-ops],
libc_cv_asm_cfi_personality, [dnl
cat > conftest.s <<EOF
${libc_cv_dot_text}
foo:
.cfi_startproc
.cfi_personality 0, foo
.cfi_lsda 0, foo
.cfi_endproc
EOF
if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
libc_cv_asm_cfi_personality=yes
else
libc_cv_asm_cfi_personality=no
fi
rm -f conftest*
])
if test x"$libc_cv_asm_cfi_personality" != xyes; then
AC_MSG_ERROR([assembler too old, .cfi_personality support missing])
fi
2 changes: 2 additions & 0 deletions posix/tst-rfc3484-2.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ do_test (void)
struct sockaddr_in so1;
so1.sin_family = AF_INET;
so1.sin_addr.s_addr = h (0xc0a85f19);
/* Clear the rest of the structure to avoid warnings. */
memset (so1.sin_zero, '\0', sizeof (so1.sin_zero));

struct sockaddr_in sa1;
sa1.sin_family = AF_INET;
Expand Down
2 changes: 2 additions & 0 deletions posix/tst-rfc3484-3.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@ do_test (void)
struct sockaddr_in so;
so.sin_family = AF_INET;
so.sin_addr.s_addr = h (0x0aa85f19);
/* Clear the rest of the structure to avoid warnings. */
memset (so.sin_zero, '\0', sizeof (so.sin_zero));

for (int i = 0; i < naddrs; ++i)
{
Expand Down
2 changes: 2 additions & 0 deletions posix/tst-rfc3484.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ do_test (void)
struct sockaddr_in so;
so.sin_family = AF_INET;
so.sin_addr.s_addr = h (0xc0a85f19);
/* Clear the rest of the structure to avoid warnings. */
memset (so.sin_zero, '\0', sizeof (so.sin_zero));

for (int i = 0; i < naddrs; ++i)
{
Expand Down
6 changes: 1 addition & 5 deletions resolv/res_send.c
Original file line number Diff line number Diff line change
Expand Up @@ -1278,14 +1278,10 @@ send_dg(res_state statp,
? *thisanssiz : *thisresplen);

if (recvresp1 || (buf2 != NULL && recvresp2))
{
*resplen2 = 1;
return resplen;
}
return resplen;
if (buf2 != NULL)
{
/* We are waiting for a possible second reply. */
resplen = 1;
if (hp->id == anhp->id)
recvresp1 = 1;
else
Expand Down
2 changes: 2 additions & 0 deletions sysdeps/posix/getaddrinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -833,6 +833,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
&& inet6_status != NSS_STATUS_UNAVAIL)
status = inet6_status;
}
else
status = NSS_STATUS_UNAVAIL;
}

if (nss_next_action (nip, status) == NSS_ACTION_RETURN)
Expand Down
Loading

0 comments on commit e1a5136

Please sign in to comment.