summaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-07-14 17:11:14 +0000
committerUlrich Drepper <drepper@redhat.com>2004-07-14 17:11:14 +0000
commit290639c3b42dda0d6245d7a56740a89da07eca4c (patch)
treecfab5c484de45aaa369f4c934f12d02c3f7b3aab /linuxthreads
parent6c1232e27d521f5fc63ea56e4fe9b32e16887c03 (diff)
[BZ #266]
Update. 2004-07-14 Jakub Jelinek <jakub@redhat.com> [BZ #266] * manual/string.texi (l64a): Note that the static buffer is 7 bytes long. Rewrite example code so that it takes account l64a output shorter than 6 characters. Reported by Julian Graham <julian.graham@aya.yale.edu>.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog6
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h21
2 files changed, 26 insertions, 1 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index ca061a943f..45a76743ad 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,9 @@
+2004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
+ (__local_multiple_threads): Define for librt.
+ (SINGLE_THREAD_P): Likewise.
+
2004-07-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/getcpuclockid.c (pthread_getcpuclockid): Allow
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
index 9fac494a9f..03c6fedbfe 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
@@ -99,6 +99,7 @@
# else
# define __local_enable_asynccancel __librt_enable_asynccancel
# define __local_disable_asynccancel __librt_disable_asynccancel
+# define __local_multiple_threads __librt_multiple_threads
# endif
# if defined IS_IN_librt && defined PIC
@@ -183,7 +184,8 @@ extern int __local_multiple_threads attribute_hidden;
1:
# else
-# define SINGLE_THREAD_P \
+# if !defined NOT_IN_libc || defined IS_IN_libpthread
+# define SINGLE_THREAD_P \
mov r12,r2; \
mov.l 0f,r12; \
mova 0f,r0; \
@@ -197,6 +199,23 @@ extern int __local_multiple_threads attribute_hidden;
0: .long _GLOBAL_OFFSET_TABLE_; \
1: .long __local_multiple_threads@GOTOFF; \
2:
+# else
+# define SINGLE_THREAD_P \
+ mov r12,r2; \
+ mov.l 0f,r12; \
+ mova 0f,r0; \
+ add r0,r12; \
+ mov.l 1f,r0; \
+ mov.l @(r0,r12),r0; \
+ mov.l @r0,r0; \
+ mov r2,r12; \
+ bra 2f; \
+ tst r0,r0; \
+ .align 2; \
+ 0: .long _GLOBAL_OFFSET_TABLE_; \
+ 1: .long __local_multiple_threads@GOT; \
+ 2:
+# endif
# endif
# endif