]> git.pld-linux.org Git - packages/glibc.git/commitdiff
- fix glibc bug#5216 (alpha link-failure).
authorPaweł Sikora <pluto@pld-linux.org>
Mon, 25 Feb 2008 19:59:29 +0000 (19:59 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    glibc-2.7-alpha_PTR_MANGLE_move-1.patch -> 1.1

glibc-2.7-alpha_PTR_MANGLE_move-1.patch [new file with mode: 0644]

diff --git a/glibc-2.7-alpha_PTR_MANGLE_move-1.patch b/glibc-2.7-alpha_PTR_MANGLE_move-1.patch
new file mode 100644 (file)
index 0000000..9779ff3
--- /dev/null
@@ -0,0 +1,87 @@
+diff -Naur glibc-2.7.orig/sysdeps/unix/alpha/sysdep.h glibc-2.7/sysdeps/unix/alpha/sysdep.h
+--- glibc-2.7.orig/sysdeps/unix/alpha/sysdep.h 2006-03-03 06:21:28.000000000 -0500
++++ glibc-2.7/sysdeps/unix/alpha/sysdep.h      2007-10-27 23:14:36.000000000 -0400
+@@ -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 */
+diff -Naur glibc-2.7.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h glibc-2.7/sysdeps/unix/sysv/linux/alpha/sysdep.h
+--- glibc-2.7.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h      2007-08-21 04:07:28.000000000 -0400
++++ glibc-2.7/sysdeps/unix/sysv/linux/alpha/sysdep.h   2007-10-27 23:39:45.000000000 -0400
+@@ -98,4 +98,37 @@
+       INTERNAL_SYSCALL1(name, err_out, nr, args);                     \
+ })
++#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
++#else
++# 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 /* _LINUX_ALPHA_SYSDEP_H */
This page took 0.102449 seconds and 4 git commands to generate.