This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.18-188-gb8123ef


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  b8123ef5b178a59bd72540276447077f51af2e93 (commit)
      from  ad4e70da03353444aad95a4fbbd03cef2b750647 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b8123ef5b178a59bd72540276447077f51af2e93

commit b8123ef5b178a59bd72540276447077f51af2e93
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Oct 1 07:45:11 2013 -0700

    alpha: Improve conditions under which PTR_MANGLE is defined
    
    After 0b1f8e35640f5b3f7af11764ade3ff060211c309, we now have
    a __pointer_chk_guard_local for the static libc.

diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 1b58cb8..218cfad 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,8 @@
+2013-10-01  Richard Henderson  <rth@redhat.com>
+
+	* sysdeps/unix/alpha/sysdep.h (PTR_MANGLE): Improve conditions under
+	which it is defined.
+
 2013-09-20  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* sysdeps/alpha/alphaev67/ffs.S (__ffs): Define as hidden.
diff --git a/ports/sysdeps/unix/alpha/sysdep.h b/ports/sysdeps/unix/alpha/sysdep.h
index d20bcd6..150a919 100644
--- a/ports/sysdeps/unix/alpha/sysdep.h
+++ b/ports/sysdeps/unix/alpha/sysdep.h
@@ -343,53 +343,43 @@ __LABEL(name)						\
 	   : : inline_syscall_clobbers);			\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
+#endif /* ASSEMBLER */
 
 /* 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__
+#ifdef __ASSEMBLER__
+# if defined NOT_IN_libc && defined IS_IN_rtld
 #  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__
+# elif defined SHARED
 #  define PTR_MANGLE(dst, src, tmp)		\
 	ldq	tmp, __pointer_chk_guard;	\
 	xor	src, tmp, dst
-#  define PTR_MANGLE2(dst, src, tmp)		\
+# else
+#  define PTR_MANGLE(dst, src, tmp)		\
+	ldq	tmp, __pointer_chk_guard_local;	\
 	xor	src, tmp, dst
-#  define PTR_DEMANGLE(dst, tmp)   PTR_MANGLE(dst, dst, tmp)
-#  define PTR_DEMANGLE2(dst, tmp)  PTR_MANGLE2(dst, dst, tmp)
+# endif
+# 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
+# include <stdint.h>
+# if (defined NOT_IN_libc && defined IS_IN_rtld) \
+     || (!defined SHARED && (!defined NOT_IN_libc || defined IS_IN_libpthread))
+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)
 # else
 extern const uintptr_t __pointer_chk_guard attribute_relro;
-#  define PTR_MANGLE(var)	\
+#  define PTR_MANGLE(var) \
 	(var) = (__typeof(var)) ((uintptr_t) (var) ^ __pointer_chk_guard)
-#  define PTR_DEMANGLE(var)  PTR_MANGLE(var)
 # endif
-#else
-/* There exists generic C code that assumes that PTR_MANGLE is always
-   defined.  When generating code for the static libc, we don't have
-   __pointer_chk_guard defined.  Nor is there any place that would
-   initialize it if it were defined, so there's little point in doing
-   anything more than nothing.  */
-# ifndef __ASSEMBLER__
-#  define PTR_MANGLE(var)
-#  define PTR_DEMANGLE(var)
-# endif
-#endif
-
+# define PTR_DEMANGLE(var)  PTR_MANGLE(var)
 #endif /* ASSEMBLER */

-----------------------------------------------------------------------

Summary of changes:
 ports/ChangeLog.alpha             |    5 +++
 ports/sysdeps/unix/alpha/sysdep.h |   52 +++++++++++++++----------------------
 2 files changed, 26 insertions(+), 31 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]