diff options
Diffstat (limited to 'patches/glibc/2.6/200-alpha-ptr_mangle.patch')
-rw-r--r-- | patches/glibc/2.6/200-alpha-ptr_mangle.patch | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/patches/glibc/2.6/200-alpha-ptr_mangle.patch b/patches/glibc/2.6/200-alpha-ptr_mangle.patch deleted file mode 100644 index 7de4bacf..00000000 --- a/patches/glibc/2.6/200-alpha-ptr_mangle.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- glibc-2.6.orig/sysdeps/unix/alpha/sysdep.h -+++ glibc-2.6/sysdeps/unix/alpha/sysdep.h -@@ -397,42 +397,4 @@ - _sc_ret = _sc_0, _sc_err = _sc_19; \ - } - --/* Pointer mangling support. Note that tls access is slow enough that -- we don't deoptimize things by placing the pointer check value there. */ -- --#include <stdint.h> -- --#if defined NOT_IN_libc && defined IS_IN_rtld --# ifdef __ASSEMBLER__ --# define PTR_MANGLE(dst, src, tmp) \ -- ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \ -- ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \ -- xor src, tmp, dst --# define PTR_MANGLE2(dst, src, tmp) \ -- xor src, tmp, dst --# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) --# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) --# else --extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; --# define PTR_MANGLE(var) \ -- (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local) --# define PTR_DEMANGLE(var) PTR_MANGLE(var) --# endif --#elif defined PIC --# ifdef __ASSEMBLER__ --# define PTR_MANGLE(dst, src, tmp) \ -- ldq tmp, __pointer_chk_guard; \ -- xor src, tmp, dst --# define PTR_MANGLE2(dst, src, tmp) \ -- xor src, tmp, dst --# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) --# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) --# else --extern uintptr_t __pointer_chk_guard attribute_relro; --# define PTR_MANGLE(var) \ -- (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard) --# define PTR_DEMANGLE(var) PTR_MANGLE(var) --# endif --#endif -- - #endif /* ASSEMBLER */ ---- glibc-2.6.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h -+++ glibc-2.6/sysdeps/unix/sysv/linux/alpha/sysdep.h -@@ -29,6 +29,8 @@ - /* There is some commonality. */ - #include <sysdeps/unix/alpha/sysdep.h> - -+#include <tls.h> -+ - /* For Linux we can use the system call table in the header file - /usr/include/asm/unistd.h - of the kernel. But these symbols do not follow the SYS_* syntax -@@ -96,4 +96,46 @@ - INTERNAL_SYSCALL1(name, err_out, nr, args); \ - }) - -+/* Pointer mangling support. Note that tls access is slow enough that -+ we don't deoptimize things by placing the pointer check value there. */ -+ -+#if defined NOT_IN_libc && defined IS_IN_rtld -+# ifdef __ASSEMBLER__ -+# define PTR_MANGLE(dst, src, tmp) \ -+ ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \ -+ ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \ -+ xor src, tmp, dst -+# define PTR_MANGLE2(dst, src, tmp) \ -+ xor src, tmp, dst -+# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) -+# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) -+# else -+extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; -+# define PTR_MANGLE(var) \ -+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local) -+# define PTR_DEMANGLE(var) PTR_MANGLE(var) -+# endif -+#elif defined PIC -+# ifdef __ASSEMBLER__ -+# define PTR_MANGLE(dst, src, tmp) \ -+ ldq tmp, __pointer_chk_guard; \ -+ xor src, tmp, dst -+# define PTR_MANGLE2(dst, src, tmp) \ -+ xor src, tmp, dst -+# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) -+# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) -+# else -+extern uintptr_t __pointer_chk_guard attribute_relro; -+# define PTR_MANGLE(var) \ -+ (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard) -+# define PTR_DEMANGLE(var) PTR_MANGLE(var) -+# endif -+#else -+/* Pointer mangling is not yet supported for static libc on alpha. */ -+# ifndef __ASSEMBLER__ -+# define PTR_MANGLE(var) (void) (var) -+# define PTR_DEMANGLE(var) (void) (var) -+# endif -+#endif -+ - #endif /* _LINUX_ALPHA_SYSDEP_H */ |