[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r2640 - in glibc-package/branches/glibc-2.7/debian: . patches patches/alpha



Author: madcoder
Date: 2007-11-01 13:41:15 +0000 (Thu, 01 Nov 2007)
New Revision: 2640

Added:
   glibc-package/branches/glibc-2.7/debian/patches/alpha/submitted-PTR_MANGLE.diff
Modified:
   glibc-package/branches/glibc-2.7/debian/changelog
   glibc-package/branches/glibc-2.7/debian/patches/series
Log:
Hopefully fix alpha.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>


Modified: glibc-package/branches/glibc-2.7/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.7/debian/changelog	2007-11-01 10:18:37 UTC (rev 2639)
+++ glibc-package/branches/glibc-2.7/debian/changelog	2007-11-01 13:41:15 UTC (rev 2640)
@@ -86,8 +86,9 @@
   * Add locale/preprocessor-collate-uli-sucks.diff to revert Ulrich's
     preprocessor that isn't enough for Debian.
   * Update patches/locale/preprocessor-collate.diff.
+  * Add alpha/submitted-PTR_MANGLE.diff (Closes: #448508).
 
- -- Aurelien Jarno <aurel32@debian.org>  Mon, 29 Oct 2007 10:54:31 +0100
+ -- Pierre Habouzit <madcoder@debian.org>  Thu, 01 Nov 2007 14:38:51 +0100
 
 glibc (2.6.1-6) unstable; urgency=low
 

Added: glibc-package/branches/glibc-2.7/debian/patches/alpha/submitted-PTR_MANGLE.diff
===================================================================
--- glibc-package/branches/glibc-2.7/debian/patches/alpha/submitted-PTR_MANGLE.diff	                        (rev 0)
+++ glibc-package/branches/glibc-2.7/debian/patches/alpha/submitted-PTR_MANGLE.diff	2007-11-01 13:41:15 UTC (rev 2640)
@@ -0,0 +1,78 @@
+--- glibc-2.7.orig/sysdeps/unix/alpha/sysdep.h
++++ glibc-2.7/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.7.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h
++++ glibc-2.7/sysdeps/unix/sysv/linux/alpha/sysdep.h
+@@ -98,4 +98,30 @@
+ 	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.  */
++
++#include <stdint.h>
++
++#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.  Using a global variable
++   is too complicated here since we have no PC-relative addressing mode.  */
++#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 */

Modified: glibc-package/branches/glibc-2.7/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-2.7/debian/patches/series	2007-11-01 10:18:37 UTC (rev 2639)
+++ glibc-package/branches/glibc-2.7/debian/patches/series	2007-11-01 13:41:15 UTC (rev 2640)
@@ -49,6 +49,7 @@
 
 alpha/local-gcc4.1.diff -p0
 alpha/submitted-xstat.diff -p0
+alpha/submitted-PTR_MANGLE.diff
 
 amd64/local-biarch.diff 
 amd64/local-linuxthreads-gscope.diff -p0



Reply to: