summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rwxr-xr-xconfigure8
-rw-r--r--configure.in6
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h7
-rwxr-xr-xscripts/check-c++-types.sh11
-rw-r--r--scripts/data/c++-types-i386-linux-gnu.data9
-rw-r--r--scripts/data/c++-types-ia64-linux-gnu.data9
-rw-r--r--scripts/data/c++-types-powerpc-linux-gnu.data9
-rw-r--r--scripts/data/c++-types-powerpc64-linux-gnu.data9
-rw-r--r--scripts/data/c++-types-s390-linux-gnu.data9
-rw-r--r--scripts/data/c++-types-s390x-linux-gnu.data9
-rw-r--r--scripts/data/c++-types-x86_64-linux-gnu.data9
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h10
14 files changed, 110 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 3966236c34..ae0076e73b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2006-01-06 Ulrich Drepper <drepper@redhat.com>
+ * scripts/check-c++-types.sh: Add more pthread types.
+ * scripts/data//c++-types-i386-linux-gnu.data: Adjust.
+ * scripts/data//c++-types-ia64-linux-gnu.data: Likewise.
+ * scripts/data//c++-types-powerpc-linux-gnu.data: Likewise.
+ * scripts/data//c++-types-powerpc64-linux-gnu.data: Likewise.
+ * scripts/data//c++-types-s390-linux-gnu.data: Likewise.
+ * scripts/data//c++-types-s390x-linux-gnu.data: Likewise.
+ * scripts/data//c++-types-x86_64-linux-gnu.data: Likewise.
+
* sysdeps/unix/sysv/linux/ia64/sysdep.h (DO_INLINE_SYSCALL_NCS):
Adjust for private->__private rename in tcbhead_t.
diff --git a/configure b/configure
index 224322a62b..448ef5b4f0 100755
--- a/configure
+++ b/configure
@@ -6135,13 +6135,17 @@ echo $ECHO_N "checking whether CFI directives are supported... $ECHO_C" >&6
if test "${libc_cv_asm_cfi_directives+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat > conftest.s <<EOF
+ case $machine in
+ sparc/sparc64*) cfi_offset=2047;;
+ *) cfi_offset=0;;
+esac
+cat > conftest.s <<EOF
.text
.type func,%function
func:
.cfi_startproc
.cfi_remember_state
- .cfi_rel_offset 1, 0
+ .cfi_rel_offset 1, $cfi_offset
.cfi_endproc
EOF
if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
diff --git a/configure.in b/configure.in
index 1199ac00ea..b5d4e3ff4b 100644
--- a/configure.in
+++ b/configure.in
@@ -1676,13 +1676,17 @@ elif test $libc_cv_asm_weakext_directive = yes; then
fi
AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
+case $machine in
+ sparc/sparc64*) cfi_offset=2047;;
+ *) cfi_offset=0;;
+esac
cat > conftest.s <<EOF
.text
.type func,%function
func:
.cfi_startproc
.cfi_remember_state
- .cfi_rel_offset 1, 0
+ .cfi_rel_offset 1, $cfi_offset
.cfi_endproc
EOF
if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d2603fc619..4f68aec2a2 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-06 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
+ Add cfi directives.
+
2006-01-06 Ulrich Drepper <drepper@redhat.com>
* sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
index d8c65aeffd..d69623c145 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
@@ -40,7 +40,11 @@ __##syscall_name##_nocancel: \
nop; \
.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
.subsection 2; \
+ cfi_startproc; \
1: save %sp, -192, %sp; \
+ cfi_def_cfa_register (%fp); \
+ cfi_window_save; \
+ cfi_register (%o7, %i7); \
CENABLE; \
nop; \
mov %o0, %l0; \
@@ -53,6 +57,7 @@ __##syscall_name##_nocancel: \
mov %l0, %o0; \
jmpl %i7 + 8, %g0; \
restore %g0, %l1, %o0; \
+ cfi_endproc; \
.previous; \
SYSCALL_ERROR_HANDLER \
SYSCALL_ERROR_HANDLER2
diff --git a/scripts/check-c++-types.sh b/scripts/check-c++-types.sh
index f0ea0b5a84..b207f12ba4 100755
--- a/scripts/check-c++-types.sh
+++ b/scripts/check-c++-types.sh
@@ -1,5 +1,5 @@
#! /bin/bash
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2005, 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
@@ -75,8 +75,17 @@ nlink_t
off64_t
off_t
pid_t
+pthread_attr_t
+pthread_barrier_t
+pthread_barrierattr_t
+pthread_cond_t
+pthread_condattr_t
pthread_key_t
+pthread_mutex_t
+pthread_mutexattr_t
pthread_once_t
+pthread_rwlock_t
+pthread_rwlockattr_t
pthread_spinlock_t
pthread_t
quad_t
diff --git a/scripts/data/c++-types-i386-linux-gnu.data b/scripts/data/c++-types-i386-linux-gnu.data
index aa3666cab1..fde53bf337 100644
--- a/scripts/data/c++-types-i386-linux-gnu.data
+++ b/scripts/data/c++-types-i386-linux-gnu.data
@@ -28,8 +28,17 @@ nlink_t:j
off64_t:x
off_t:l
pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
pthread_spinlock_t:i
pthread_t:m
quad_t:x
diff --git a/scripts/data/c++-types-ia64-linux-gnu.data b/scripts/data/c++-types-ia64-linux-gnu.data
index 9072e891f2..23c11dc41b 100644
--- a/scripts/data/c++-types-ia64-linux-gnu.data
+++ b/scripts/data/c++-types-ia64-linux-gnu.data
@@ -28,8 +28,17 @@ nlink_t:m
off64_t:l
off_t:l
pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
pthread_spinlock_t:i
pthread_t:m
quad_t:l
diff --git a/scripts/data/c++-types-powerpc-linux-gnu.data b/scripts/data/c++-types-powerpc-linux-gnu.data
index aa3666cab1..fde53bf337 100644
--- a/scripts/data/c++-types-powerpc-linux-gnu.data
+++ b/scripts/data/c++-types-powerpc-linux-gnu.data
@@ -28,8 +28,17 @@ nlink_t:j
off64_t:x
off_t:l
pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
pthread_spinlock_t:i
pthread_t:m
quad_t:x
diff --git a/scripts/data/c++-types-powerpc64-linux-gnu.data b/scripts/data/c++-types-powerpc64-linux-gnu.data
index 9072e891f2..23c11dc41b 100644
--- a/scripts/data/c++-types-powerpc64-linux-gnu.data
+++ b/scripts/data/c++-types-powerpc64-linux-gnu.data
@@ -28,8 +28,17 @@ nlink_t:m
off64_t:l
off_t:l
pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
pthread_spinlock_t:i
pthread_t:m
quad_t:l
diff --git a/scripts/data/c++-types-s390-linux-gnu.data b/scripts/data/c++-types-s390-linux-gnu.data
index 17647ef5ee..6e2036ec01 100644
--- a/scripts/data/c++-types-s390-linux-gnu.data
+++ b/scripts/data/c++-types-s390-linux-gnu.data
@@ -28,8 +28,17 @@ nlink_t:j
off64_t:x
off_t:l
pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
pthread_spinlock_t:i
pthread_t:m
quad_t:x
diff --git a/scripts/data/c++-types-s390x-linux-gnu.data b/scripts/data/c++-types-s390x-linux-gnu.data
index 9072e891f2..23c11dc41b 100644
--- a/scripts/data/c++-types-s390x-linux-gnu.data
+++ b/scripts/data/c++-types-s390x-linux-gnu.data
@@ -28,8 +28,17 @@ nlink_t:m
off64_t:l
off_t:l
pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
pthread_spinlock_t:i
pthread_t:m
quad_t:l
diff --git a/scripts/data/c++-types-x86_64-linux-gnu.data b/scripts/data/c++-types-x86_64-linux-gnu.data
index 9072e891f2..23c11dc41b 100644
--- a/scripts/data/c++-types-x86_64-linux-gnu.data
+++ b/scripts/data/c++-types-x86_64-linux-gnu.data
@@ -28,8 +28,17 @@ nlink_t:m
off64_t:l
off_t:l
pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
pthread_spinlock_t:i
pthread_t:m
quad_t:l
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index b30cffc5e9..dfc38f151a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1997, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2000, 2002, 2003, 2004, 2006
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -25,6 +26,7 @@
#ifdef IS_IN_rtld
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
#endif
+#include <tls.h>
#undef SYS_ify
#define SYS_ify(syscall_name) __NR_##syscall_name
@@ -124,10 +126,10 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \
# define SYSCALL_ERROR_HANDLER \
SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \
sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \
- sethi %hi(_GLOBAL_OFFSET_TABLE_), %g2; \
+ sethi %hi(_GLOBAL_OFFSET_TABLE_), %g4; \
add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \
- add %g2, %lo(_GLOBAL_OFFSET_TABLE_), %g2; \
- ldx [%g2 + %g1], %g1, %tie_ldx(SYSCALL_ERROR_ERRNO); \
+ add %g4, %lo(_GLOBAL_OFFSET_TABLE_), %g4; \
+ ldx [%g4 + %g1], %g1, %tie_ldx(SYSCALL_ERROR_ERRNO); \
st %o0, [%g7 + %g1], %tie_add(SYSCALL_ERROR_ERRNO); \
jmpl %o7+8, %g0; \
mov -1, %o0; \