aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/unix/sysv/linux/x86_64
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-06-17 22:40:05 +0000
committerUlrich Drepper <drepper@redhat.com>2003-06-17 22:40:05 +0000
commitf23b30e23b93d55dfa6f11e8eaa7f0f9dd492d93 (patch)
tree21ec8f3fd1769e3bf02b158288c8a1d371539311 /linuxthreads/sysdeps/unix/sysv/linux/x86_64
parent60d73a7ac4e0116ef2e458d705aeee14aff7aed9 (diff)
downloadglibc-f23b30e23b93d55dfa6f11e8eaa7f0f9dd492d93.tar
glibc-f23b30e23b93d55dfa6f11e8eaa7f0f9dd492d93.tar.gz
glibc-f23b30e23b93d55dfa6f11e8eaa7f0f9dd492d93.tar.bz2
glibc-f23b30e23b93d55dfa6f11e8eaa7f0f9dd492d93.zip
Update.
2003-06-17 Jakub Jelinek <jakub@redhat.com> * posix/regcomp.c (build_word_op): Use alnum instead of alpha class.
Diffstat (limited to 'linuxthreads/sysdeps/unix/sysv/linux/x86_64')
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
index 4ae543c419..742dbeb0de 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
@@ -24,7 +24,7 @@
# include <linuxthreads/internals.h>
#endif
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
+#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
# undef PSEUDO
# define PSEUDO(name, syscall_name, args) \
@@ -94,18 +94,34 @@
# define CENABLE call __pthread_enable_asynccancel;
# define CDISABLE call __pthread_disable_asynccancel;
# define __local_multiple_threads __pthread_multiple_threads
-# else
+# elif !defined NOT_IN_libc
# define CENABLE call __libc_enable_asynccancel;
# define CDISABLE call __libc_disable_asynccancel;
# define __local_multiple_threads __libc_multiple_threads
+# else
+# define CENABLE call __librt_enable_asynccancel@plt;
+# define CDISABLE call __librt_disable_asynccancel@plt;
# endif
-# ifndef __ASSEMBLER__
+# if defined IS_IN_libpthread || !defined NOT_IN_libc
+# ifndef __ASSEMBLER__
extern int __local_multiple_threads attribute_hidden;
# define SINGLE_THREAD_P \
__builtin_expect (__local_multiple_threads == 0, 1)
+# else
+# define SINGLE_THREAD_P cmpl $0, __local_multiple_threads(%rip)
+# endif
+
# else
-# define SINGLE_THREAD_P cmpl $0, __local_multiple_threads(%rip)
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ p_header.data.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P cmpl $0, %fs:MULTIPLE_THREADS_OFFSET
+# endif
+
# endif
#elif !defined __ASSEMBLER__