diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-12-20 07:21:59 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-12-20 07:21:59 +0000 |
commit | 00c2b3b91dc5f11924006ed4fb69d9d7442749b7 (patch) | |
tree | c367b0b7c66ba48cde11d2bd7bfe9c63e7b3ad49 /nptl/sysdeps/ia64 | |
parent | fc3480d3eea6380ea00d150d87830dc3cb86ede8 (diff) | |
download | glibc-00c2b3b91dc5f11924006ed4fb69d9d7442749b7.tar.gz glibc-00c2b3b91dc5f11924006ed4fb69d9d7442749b7.tar.xz glibc-00c2b3b91dc5f11924006ed4fb69d9d7442749b7.zip |
[BZ #1978]
2005-12-16 Thorsten Kukuk <kukuk@suse.de> [BZ #1978] * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): Map more filesystem types to a string. * sysdeps/unix/sysv/linux/linux_fsinfo.h: Add SYSFS_MAGIC. 2005-12-19 Jakub Jelinek <jakub@redhat.com> * locale/Makefile (programs/%-kw.h): Run $(GPERF) inside of the programs subdirectory. * sysdeps/powerpc/powerpc32/__longjmp-common.S (__longjmp): Use PTR_DEMANGLE for PC if defined. * sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/__longjmp.S (__longjmp): Likewise. * sysdeps/s390/s390-32/__longjmp.c (__longjmp): Xor %r14 with THREAD_GET_POINTER_GUARD () if PTR_DEMANGLE is defined. * sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise. * sysdeps/powerpc/powerpc32/setjmp-common.S (__sigsetjmp): Use PTR_MANGLE for PC if defined. * sysdeps/powerpc/powerpc64/setjmp-common.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Likewise. Avoid call to __sigjmp_save if IS_IN_rtld. * sysdeps/s390/s390-32/elf/setjmp.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-64/elf/setjmp.S (__sigsetjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/setjmp.S (__sigsetjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Include tls.h (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. (SYSCALL_ERROR_HANDLER): Add missing semicolons. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Add SYSCALL_ERROR_HANDLER. 2005-12-19 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Handle NO_WEAK_ALIAS. * sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Likewise. Patch by Clint Adams. 2005-12-16 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/sys/user.h: Copy struct user and dependent definitions from the kernel header to sys/user.h and remove the #include of asm/user.h.
Diffstat (limited to 'nptl/sysdeps/ia64')
-rw-r--r-- | nptl/sysdeps/ia64/tls.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/nptl/sysdeps/ia64/tls.h b/nptl/sysdeps/ia64/tls.h index e3ad0681d6..eb773aa97d 100644 --- a/nptl/sysdeps/ia64/tls.h +++ b/nptl/sysdeps/ia64/tls.h @@ -81,13 +81,14 @@ register struct pthread *__thread_self __asm__("r13"); # define TLS_TCB_SIZE sizeof (tcbhead_t) /* This is the size we need before TCB. - If there is not any room for uintptr_t stack_guard in struct pthread's - final padding, we need to put struct pthread 16 byte slower. */ + If there is not any room for uintptr_t stack_guard and + uintptr_t pointer_guard in struct pthread's final padding, + we need to put struct pthread 16 byte slower. */ # define TLS_PRE_TCB_SIZE \ - (sizeof (struct pthread) \ - + (PTHREAD_STRUCT_END_PADDING < sizeof (uintptr_t) \ - ? ((sizeof (uintptr_t) + __alignof__ (struct pthread) - 1)\ - & ~(__alignof__ (struct pthread) - 1)) \ + (sizeof (struct pthread) \ + + (PTHREAD_STRUCT_END_PADDING < 2 * sizeof (uintptr_t) \ + ? ((2 * sizeof (uintptr_t) + __alignof__ (struct pthread) - 1) \ + & ~(__alignof__ (struct pthread) - 1)) \ : 0)) /* Alignment requirements for the TCB. */ @@ -156,6 +157,15 @@ register struct pthread *__thread_self __asm__("r13"); (((uintptr_t *) ((char *) (descr) + TLS_PRE_TCB_SIZE))[-1] \ = ((uintptr_t *) __thread_self)[-1]) +/* Set the pointer guard field in TCB head. */ +#define THREAD_GET_POINTER_GUARD() \ + (((uintptr_t *) __thread_self)[-2]) +#define THREAD_SET_POINTER_GUARD(value) \ + (((uintptr_t *) __thread_self)[-2] = (value)) +#define THREAD_COPY_POINTER_GUARD(descr) \ + (((uintptr_t *) ((char *) (descr) + TLS_PRE_TCB_SIZE))[-2] \ + = THREAD_GET_POINTER_GUARD ()) + #endif /* __ASSEMBLER__ */ #endif /* tls.h */ |