SOURCES: glibc-2.7-alpha_PTR_MANGLE_move-1.patch (NEW) - fix glibc...
pluto
pluto at pld-linux.org
Mon Feb 25 20:59:34 CET 2008
Author: pluto Date: Mon Feb 25 19:59:34 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- fix glibc bug#5216 (alpha link-failure).
---- Files affected:
SOURCES:
glibc-2.7-alpha_PTR_MANGLE_move-1.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/glibc-2.7-alpha_PTR_MANGLE_move-1.patch
diff -u /dev/null SOURCES/glibc-2.7-alpha_PTR_MANGLE_move-1.patch:1.1
--- /dev/null Mon Feb 25 20:59:34 2008
+++ SOURCES/glibc-2.7-alpha_PTR_MANGLE_move-1.patch Mon Feb 25 20:59:29 2008
@@ -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 */
================================================================
More information about the pld-cvs-commit
mailing list