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.19-451-ga6b3657
- From: rth at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 21 May 2014 15:37:47 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.19-451-ga6b3657
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 a6b3657be6bc5067aeec98d990f60765361c6557 (commit)
via 3612eb8f25d978e7e4ac536a34098091f737161c (commit)
from 175cef4163dd60f95106cfd5f593b8a4e09d02c9 (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=a6b3657be6bc5067aeec98d990f60765361c6557
commit a6b3657be6bc5067aeec98d990f60765361c6557
Author: Richard Henderson <rth@redhat.com>
Date: Wed May 21 11:36:51 2014 -0400
aarch64: Merge __local_multiple_threads offset with memory reference
This also highlights that we'd been loading 64-bits instead of
the proper 32-bits. Caught by the linker as a relocation error,
since the variable happened to be unaligned for 64-bits.
diff --git a/ChangeLog b/ChangeLog
index 4f0414e..f25bd3f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2014-05-21 Richard Henderson <rth@redhat.com>
+ * sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
+ (SINGLE_THREAD_P): Use the correct width load. Fold
+ into the ldr offset.
+
* sysdeps/unix/sysv/linux/aarch64/sysdep.h [RTLD_PRIVATE_ERRNO]
(SYSCALL_ERROR_HANDLER): Fold add insn into str offset.
diff --git a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
index 0e9bef3..24fae7b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
@@ -163,9 +163,8 @@ extern int __local_multiple_threads attribute_hidden;
# else
# define SINGLE_THREAD_P \
adrp x16, __local_multiple_threads; \
- add x16, x16, #:lo12:__local_multiple_threads; \
- ldr x16, [x16]; \
- cmp x16, 0;
+ ldr w16, [x16, :lo12:__local_multiple_threads]; \
+ cmp w16, 0;
# endif
# else
/* There is no __local_multiple_threads for librt, so use the TCB. */
@@ -181,12 +180,12 @@ extern int __local_multiple_threads attribute_hidden;
cfi_rel_offset (x30, 8); \
bl __read_tp; \
sub x0, x0, PTHREAD_SIZEOF; \
- ldr x16, [x0, PTHREAD_MULTIPLE_THREADS_OFFSET]; \
+ ldr w16, [x0, PTHREAD_MULTIPLE_THREADS_OFFSET]; \
ldp x0, x30, [sp], 16; \
cfi_restore (x0); \
cfi_restore (x30); \
cfi_adjust_cfa_offset (-16); \
- cmp x16, 0
+ cmp w16, 0
# define SINGLE_THREAD_P_PIC(x) SINGLE_THREAD_P
# endif
# endif
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3612eb8f25d978e7e4ac536a34098091f737161c
commit 3612eb8f25d978e7e4ac536a34098091f737161c
Author: Richard Henderson <rth@redhat.com>
Date: Wed May 21 11:36:03 2014 -0400
aarch64: Merge rtld_errno offset with memory reference
diff --git a/ChangeLog b/ChangeLog
index 7f49fbb..4f0414e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-21 Richard Henderson <rth@redhat.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/sysdep.h [RTLD_PRIVATE_ERRNO]
+ (SYSCALL_ERROR_HANDLER): Fold add insn into str offset.
+
2014-05-20 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
index d90ef25..8397ad3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -117,9 +117,8 @@
# define SYSCALL_ERROR_HANDLER \
__local_syscall_error: \
adrp x1, C_SYMBOL_NAME(rtld_errno); \
- add x1, x1, #:lo12:C_SYMBOL_NAME(rtld_errno); \
neg w0, w0; \
- str w0, [x1]; \
+ str w0, [x1, :lo12:C_SYMBOL_NAME(rtld_errno)]; \
mov x0, -1; \
RET;
# else
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 +++++++++
.../unix/sysv/linux/aarch64/nptl/sysdep-cancel.h | 9 ++++-----
sysdeps/unix/sysv/linux/aarch64/sysdep.h | 3 +--
3 files changed, 14 insertions(+), 7 deletions(-)
hooks/post-receive
--
GNU C Library master sources