summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-01-06 22:58:39 +0000
committerUlrich Drepper <drepper@redhat.com>2006-01-06 22:58:39 +0000
commitced368f7dc4df79822d88988365a82b5dd3bec16 (patch)
treeefdb37880d81b19b140091b960df9a534ec0b13c
parentcbbbb1887f2c4a4a620627d5d1b0619368d2d511 (diff)
downloadglibc-ced368f7dc4df79822d88988365a82b5dd3bec16.tar.gz
glibc-ced368f7dc4df79822d88988365a82b5dd3bec16.tar.xz
glibc-ced368f7dc4df79822d88988365a82b5dd3bec16.zip
* 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.
-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;						\