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.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


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