From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16228 invoked by alias); 13 Apr 2004 12:54:05 -0000 Mailing-List: contact libc-hacker-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sources.redhat.com Received: (qmail 16003 invoked from network); 13 Apr 2004 12:54:04 -0000 Received: from unknown (HELO r-rr.iij4u.or.jp) (210.130.0.76) by sources.redhat.com with SMTP; 13 Apr 2004 12:54:04 -0000 Received: from localhost (frgw.3in.ne.jp [210.251.121.226]) by r-rr.iij4u.or.jp (8.11.6+IIJ/8.11.6) with ESMTP id i3DCs2025563 for ; Tue, 13 Apr 2004 21:54:02 +0900 (JST) Date: Tue, 13 Apr 2004 12:54:00 -0000 Message-Id: <20040413.215138.71107280.kkojima@rr.iij4u.or.jp> To: libc-hacker@sources.redhat.com Subject: [PATCH] SH: Fix the last nptl test failure From: Kaz Kojima Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2004-04/txt/msg00026.txt.bz2 Hi, I've found that the hand-crafted frame info for pthread_cond_wait.S and pthread_cond_timedwait.S cause the failure of nptl/tst-cancel17 on SH. The attached patch fixes that. It also enables TLS configuration because now all nptl tests are ok on this target with the appropriate compiler. Regards, kaz -- ChangeLog: 2004-04-13 Kaz Kojima * sysdeps/sh/elf/configure.in: New. * sysdeps/sh/elf/configure: Generated. nptl/ChangeLog: 2004-04-13 Kaz Kojima * sysv/linux/sh/pthread_cond_wait.S: Remove unneeded frame info. * sysv/linux/sh/pthread_cond_timedwait.S: Likewise. diff -u3prN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S Sat Mar 20 15:24:29 2004 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S Tue Apr 13 11:20:33 2004 @@ -604,53 +604,6 @@ __condvar_tw_cleanup: .ualong .Lalloc-.Lpush_pr .byte 0xe .uleb128 92 - .byte 0x4 - .ualong .Lfree-.Lalloc - .byte 0xe - .uleb128 28 - .byte 0x4 - .ualong .Lpop_pr-.Lfree - .byte 0xe - .uleb128 24 - .byte 0xd1 - .byte 0x4 - .ualong .Lpop_r13-.Lpop_pr - .byte 0xe - .uleb128 20 - .byte 0xcd - .byte 0x4 - .ualong .Lpop_r12-.Lpop_r13 - .byte 0xe - .uleb128 16 - .byte 0xcc - .byte 0x4 - .ualong .Lpop_r11-.Lpop_r12 - .byte 0xe - .uleb128 12 - .byte 0xcb - .byte 0x4 - .ualong .Lpop_r10-.Lpop_r11 - .byte 0xe - .uleb128 8 - .byte 0xca - .byte 0x4 - .ualong .Lpop_r9-.Lpop_r10 - .byte 0xe - .uleb128 4 - .byte 0xc9 - .byte 0x4 - .ualong .Lpop_r8-.Lpop_r9 - .byte 0xe - .uleb128 0 - .byte 0xc8 - .byte 0x4 - .ualong .LSblSTART-.Lpop_r8 - .byte 0xe - .uleb128 72 - .byte 0x4 - .ualong .LSblEND-.LSblSTART - .byte 0xe - .uleb128 72 .align 2 .LENDFDE: diff -u3prN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S Sat Mar 20 15:24:30 2004 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S Tue Apr 13 11:20:33 2004 @@ -524,48 +524,6 @@ __condvar_w_cleanup: .ualong .Lalloc-.Lpush_pr .byte 0xe .uleb128 72 - .byte 0x4 - .ualong .Lfree-.Lalloc - .byte 0xe - .uleb128 24 - .byte 0x4 - .ualong .Lpop_pr-.Lfree - .byte 0xe - .uleb128 20 - .byte 0xd1 - .byte 0x4 - .ualong .Lpop_r12-.Lpop_pr - .byte 0xe - .uleb128 16 - .byte 0xcc - .byte 0x4 - .ualong .Lpop_r11-.Lpop_r12 - .byte 0xe - .uleb128 12 - .byte 0xcb - .byte 0x4 - .ualong .Lpop_r10-.Lpop_r11 - .byte 0xe - .uleb128 8 - .byte 0xca - .byte 0x4 - .ualong .Lpop_r9-.Lpop_r10 - .byte 0xe - .uleb128 4 - .byte 0xc9 - .byte 0x4 - .ualong .Lpop_r8-.Lpop_r9 - .byte 0xe - .uleb128 0 - .byte 0xc8 - .byte 0x4 - .ualong .LSblSTART-.Lpop_r8 - .byte 0xe - .uleb128 72 - .byte 0x4 - .ualong .LSblEND-.LSblSTART - .byte 0xe - .uleb128 72 .align 2 .LENDFDE: diff -u3prN ORIG/libc/sysdeps/sh/elf/configure LOCAL/libc/sysdeps/sh/elf/configure --- ORIG/libc/sysdeps/sh/elf/configure Thu Jan 1 09:00:00 1970 +++ LOCAL/libc/sysdeps/sh/elf/configure Tue Apr 13 11:20:33 2004 @@ -0,0 +1,47 @@ +# This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/sh/elf. + +if test "$usetls" != no; then +# Check for support of thread-local storage handling in assembler and +# linker. +echo "$as_me:$LINENO: checking for SH TLS support" >&5 +echo $ECHO_N "checking for sh TLS support... $ECHO_C" >&6 +if test "${libc_cv_sh_tls+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat > conftest.S <<\EOF + .section ".tdata", "awT", @progbits +foo: .long 25 + .text + .long foo@TLSGD + .long foo@TLSLDM + .long foo@DTPOFF + .long foo@GOTTPOFF + .long foo@TPOFF +EOF +if { ac_try='${CC-cc} -S $CFLAGS 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_sh_tls=yes +else + libc_cv_sh_tls=no +fi +rm -f conftest* +fi +echo "$as_me:$LINENO: result: $libc_cv_sh_tls" >&5 +echo "${ECHO_T}$libc_cv_sh_tls" >&6 +if test $libc_cv_sh_tls = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_TLS_SUPPORT 1 +_ACEOF + +fi +fi + +cat >>confdefs.h <<\_ACEOF +#define PI_STATIC_AND_HIDDEN 1 +_ACEOF + diff -u3prN ORIG/libc/sysdeps/sh/elf/configure.in LOCAL/libc/sysdeps/sh/elf/configure.in --- ORIG/libc/sysdeps/sh/elf/configure.in Thu Jan 1 09:00:00 1970 +++ LOCAL/libc/sysdeps/sh/elf/configure.in Tue Apr 13 11:20:33 2004 @@ -0,0 +1,32 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/sh/elf. + +if test "$usetls" != no; then +# Check for support of thread-local storage handling in assembler and +# linker. +AC_CACHE_CHECK(for SH TLS support, libc_cv_sh_tls, [dnl +cat > conftest.S <<\EOF + .section ".tdata", "awT", @progbits +foo: .long 25 + .text + .long foo@TLSGD + .long foo@TLSLDM + .long foo@DTPOFF + .long foo@GOTTPOFF + .long foo@TPOFF +EOF +dnl +if AC_TRY_COMMAND(${CC-cc} -S $CFLAGS conftest.S 1>&AS_MESSAGE_LOG_FD); then + libc_cv_sh_tls=yes +else + libc_cv_sh_tls=no +fi +rm -f conftest*]) +if test $libc_cv_sh_tls = yes; then + AC_DEFINE(HAVE_TLS_SUPPORT) +fi +fi + +dnl It is always possible to access static and hidden symbols in an +dnl position independent way. +AC_DEFINE(PI_STATIC_AND_HIDDEN)