diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-01-02 20:57:43 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-01-02 20:57:43 +0000 |
commit | 305bb37e1e4d39fe9e515fc5543fefea7c4e9653 (patch) | |
tree | b6ffe62a76de136c56c8c6ca43394bb48546a019 /sysdeps/unix/sysv/linux/sparc/sparc64 | |
parent | cc792128be8ee299212c43b1c34f4433e257a7e6 (diff) | |
download | glibc-305bb37e1e4d39fe9e515fc5543fefea7c4e9653.tar glibc-305bb37e1e4d39fe9e515fc5543fefea7c4e9653.tar.gz glibc-305bb37e1e4d39fe9e515fc5543fefea7c4e9653.tar.bz2 glibc-305bb37e1e4d39fe9e515fc5543fefea7c4e9653.zip |
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (PTR_MANGLE,cvs/fedora-glibc-20060102T2114
PTR_MANGLE2, PTR_DEMANGLE, PTR_DEMANGLE2): Define.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (PTR_MANGLE,
PTR_MANGLE2, PTR_DEMANGLE, PTR_DEMANGLE2): Define.
* sysdeps/unix/sysv/linux/sparc/bits/setjmp.h [__WORDSIZE == 64]
(_JMPBUF_UNWINDS): Don't demangle uc_mcontext.mc_fp.
* sysdeps/sparc/sparc32/setjmp.S (__sigsetjmp): Mangle %fp, %sp
and %o7.
* sysdeps/sparc/sparc32/__longjmp.S (__longjmp): Demangle %fp, %sp
and %o7.
2006-01-02 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PTR_MANGLE2):
Define.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PTR_MANGLE2):
Likewise.
* sysdeps/s390/s390-32/__longjmp.c (__longjmp): Demangle also %r15.
* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Mangle also %r15.
* 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/s390/bits/setjmp.h (__jmp_buf): Add __s390_jmp_buf
struct tag to make C++ happy.
2006-01-02 Ulrich Drepper <drepper@redhat.com>
* posix/Makefile ($(objpfx)annexc.out): Move -I.. to the end of
the include list.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index 071aa3a310..b30cffc5e9 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -240,4 +240,24 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \ register windows. So if you poke stack memory directly you add this. */ #define STACK_BIAS 2047 +/* Pointer mangling support. */ +#if defined NOT_IN_libc && defined IS_IN_rtld +/* We cannot use the thread descriptor because in ld.so we use setjmp + earlier than the descriptor is initialized. */ +#else +# ifdef __ASSEMBLER__ +# define PTR_MANGLE(dreg, reg, tmpreg) \ + ldx [%g7 + POINTER_GUARD], tmpreg; \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE(dreg, reg, tmpreg) PTR_MANGLE (dreg, reg, tmpreg) +# define PTR_MANGLE2(dreg, reg, tmpreg) \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE2(dreg, reg, tmpreg) PTR_MANGLE2 (dreg, reg, tmpreg) +# else +# define PTR_MANGLE(var) \ + (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) +# define PTR_DEMANGLE(var) PTR_MANGLE (var) +# endif +#endif + #endif /* linux/sparc64/sysdep.h */ |