This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.18-188-gb8123ef
- From: rth at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 1 Oct 2013 19:27:39 -0000
- Subject: 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