aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/sh
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-01-05 11:05:49 +0000
committerUlrich Drepper <drepper@redhat.com>2003-01-05 11:05:49 +0000
commitbdee30cfe40d9c5cfe0b8969877f11857d092359 (patch)
tree4ef8d92e79f6dfb21d6d9b410e41d6d49fe314d2 /linuxthreads/sysdeps/sh
parent73e9ae887fab0918165e49d783328c891c1b1bdb (diff)
downloadglibc-bdee30cfe40d9c5cfe0b8969877f11857d092359.zip
glibc-bdee30cfe40d9c5cfe0b8969877f11857d092359.tar.gz
glibc-bdee30cfe40d9c5cfe0b8969877f11857d092359.tar.bz2
Update.
2003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Mark __syscall_pread64 and __syscall_pwrite64 cancelable. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INTERNAL_SYSCALL): New macro. (LOADARGS_0, LOADARGS_1): Fix. 2003-01-05 Ulrich Drepper <drepper@redhat.com> * Makerules (build-shlip-helper): Unless told otherwise, add -Wl,-z,defs to linker command line. * rt/Makefile (librt.so): Link with ld.so. * dlfcn/Makefile (libdl.so): Likewise.
Diffstat (limited to 'linuxthreads/sysdeps/sh')
-rw-r--r--linuxthreads/sysdeps/sh/tls.h30
1 files changed, 21 insertions, 9 deletions
diff --git a/linuxthreads/sysdeps/sh/tls.h b/linuxthreads/sysdeps/sh/tls.h
index 75d3b71..de79aae 100644
--- a/linuxthreads/sysdeps/sh/tls.h
+++ b/linuxthreads/sysdeps/sh/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. linuxthreads/SH version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 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
@@ -20,10 +20,12 @@
#ifndef _TLS_H
#define _TLS_H
-#ifndef __ASSEMBLER__
-#include <stddef.h>
+# include <dl-sysdep.h>
+# include <pt-machine.h>
-#include <pt-machine.h>
+#ifndef __ASSEMBLER__
+# include <stddef.h>
+# include <stdint.h>
/* Type for the dtv. */
typedef union dtv
@@ -39,18 +41,24 @@ typedef struct
thread descriptor used by libpthread. */
dtv_t *dtv;
void *self; /* Pointer to the thread descriptor. */
+ int multiple_threads;
} tcbhead_t;
+#else /* __ASSEMBLER__ */
+# include <tcb-offsets.h>
+#endif /* __ASSEMBLER__ */
/* We can support TLS only if the floating-stack support is available. */
-#if defined FLOATING_STACKS && defined HAVE_TLS_SUPPORT
-
-/* Get system call information. */
-# include <sysdep.h>
+#if defined HAVE_TLS_SUPPORT \
+ && (defined FLOATING_STACKS || !defined IS_IN_libpthread)
/* Signal that TLS support is available. */
# define USE_TLS 1
+#ifndef __ASSEMBLER__
+
+/* Get system call information. */
+# include <sysdep.h>
/* Get the thread descriptor definition. */
# include <linuxthreads/descr.h>
@@ -103,13 +111,17 @@ typedef struct
0; \
})
+/* Indicate that dynamic linker shouldn't try to initialize TLS even
+ when no PT_TLS segments are found in the program and libraries
+ it is linked against. */
+# define TLS_INIT_TP_EXPENSIVE 1
/* Return the address of the dtv for the current thread. */
# define THREAD_DTV() \
({ struct _pthread_descr_struct *__descr; \
THREAD_GETMEM (__descr, p_header.data.dtvp); })
-#endif /* FLOATING_STACKS && HAVE_TLS_SUPPORT */
+# endif /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */
#endif /* __ASSEMBLER__ */
#endif /* tls.h */