diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rwxr-xr-x | configure | 8 | ||||
-rw-r--r-- | configure.in | 6 | ||||
-rw-r--r-- | nptl/ChangeLog | 5 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h | 7 | ||||
-rwxr-xr-x | scripts/check-c++-types.sh | 11 | ||||
-rw-r--r-- | scripts/data/c++-types-i386-linux-gnu.data | 9 | ||||
-rw-r--r-- | scripts/data/c++-types-ia64-linux-gnu.data | 9 | ||||
-rw-r--r-- | scripts/data/c++-types-powerpc-linux-gnu.data | 9 | ||||
-rw-r--r-- | scripts/data/c++-types-powerpc64-linux-gnu.data | 9 | ||||
-rw-r--r-- | scripts/data/c++-types-s390-linux-gnu.data | 9 | ||||
-rw-r--r-- | scripts/data/c++-types-s390x-linux-gnu.data | 9 | ||||
-rw-r--r-- | scripts/data/c++-types-x86_64-linux-gnu.data | 9 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 10 |
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; \ |