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.15-847-g9fb1a21
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 11 May 2012 23:32:02 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.15-847-g9fb1a21
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 9fb1a21f4d33c4c82719d6130e149eb2c5a51ae8 (commit)
via d3c6600440bfa95db3bb1ddd6c75dc43cffb79e7 (commit)
via 4822a2a5207d0aa43160a7a95cb1ac244a350511 (commit)
from 60d45b36a5cf5befde06d44424c720edf1f88244 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9fb1a21f4d33c4c82719d6130e149eb2c5a51ae8
commit 9fb1a21f4d33c4c82719d6130e149eb2c5a51ae8
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 11 16:31:34 2012 -0700
Add x32 support to STACK_CHK_GUARD
diff --git a/ChangeLog b/ChangeLog
index 9d8a713..0c4a814 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2012-05-11 H.J. Lu <hongjiu.lu@intel.com>
+ * elf/stackguard-macros.h (STACK_CHK_GUARD) [__x86_64__]: Use
+ "%c1" with "i" (offsetof (tcbhead_t, stack_guard)).
+
+2012-05-11 H.J. Lu <hongjiu.lu@intel.com>
+
* elf/tls-macros.h (TLS_LE): Use mov instead of movq to load
thread pointer.
(TLS_IE): Use mov/add instead of movq/addq to load thread
diff --git a/elf/stackguard-macros.h b/elf/stackguard-macros.h
index a9889cf..0cad315 100644
--- a/elf/stackguard-macros.h
+++ b/elf/stackguard-macros.h
@@ -5,7 +5,9 @@
({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; })
#elif defined __x86_64__
# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("movq %%fs:0x28, %0" : "=r" (x)); x; })
+ ({ uintptr_t x; \
+ asm ("mov %%fs:%c1, %0" : "=r" (x) \
+ : "i" (offsetof (tcbhead_t, stack_guard))); x; })
#elif defined __powerpc64__
# define STACK_CHK_GUARD \
({ uintptr_t x; asm ("ld %0,-28688(13)" : "=r" (x)); x; })
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d3c6600440bfa95db3bb1ddd6c75dc43cffb79e7
commit d3c6600440bfa95db3bb1ddd6c75dc43cffb79e7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 11 14:58:18 2012 -0700
Update comments for CALL_THREAD_FCT
diff --git a/nptl/sysdeps/x86_64/x32/tls.h b/nptl/sysdeps/x86_64/x32/tls.h
index 6cc0ea7..7be337f 100644
--- a/nptl/sysdeps/x86_64/x32/tls.h
+++ b/nptl/sysdeps/x86_64/x32/tls.h
@@ -23,11 +23,11 @@
#ifndef __ASSEMBLER__
-/* X32 doesn't support 32-bit indirect call via memory. Instead, we
- load 32-bit address from memory into the lower 32bits of return
- register, which will automatically zero-extend the uppper 32-bits
- of return register. We then do the indirect call via 64-bit return
- register. */
+/* X32 doesn't support 32-bit indirect calls via memory. Instead, we
+ load the 32-bit address from memory into the lower 32 bits of the
+ return-value register, which will automatically zero-extend the upper
+ 32 bits of the return-value register. We then do the indirect call
+ via the 64-bit return-value register. */
# undef CALL_THREAD_FCT
# define CALL_THREAD_FCT(descr) \
({ void *__res; \
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4822a2a5207d0aa43160a7a95cb1ac244a350511
commit 4822a2a5207d0aa43160a7a95cb1ac244a350511
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 11 14:35:56 2012 -0700
Add x32 support to TLS_LE/TLS_IE/TLS_GD
diff --git a/ChangeLog b/ChangeLog
index d3a2a8e..9d8a713 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-05-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/tls-macros.h (TLS_LE): Use mov instead of movq to load
+ thread pointer.
+ (TLS_IE): Use mov/add instead of movq/addq to load thread
+ pointer.
+ (TLS_GD_PREFIX): New.
+ (TLS_GD): Use it.
+
2012-05-11 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/fpu/bits/fenv.h (__fenv_stfsr): Add __volatile__.
diff --git a/elf/tls-macros.h b/elf/tls-macros.h
index ea6f14f..e753d5c 100644
--- a/elf/tls-macros.h
+++ b/elf/tls-macros.h
@@ -101,15 +101,15 @@
# define TLS_LE(x) \
({ int *__l; \
- asm ("movq %%fs:0,%0\n\t" \
- "leaq " #x "@tpoff(%0), %0" \
+ asm ("mov %%fs:0,%0\n\t" \
+ "lea " #x "@tpoff(%0), %0" \
: "=r" (__l)); \
__l; })
# define TLS_IE(x) \
({ int *__l; \
- asm ("movq %%fs:0,%0\n\t" \
- "addq " #x "@gottpoff(%%rip),%0" \
+ asm ("mov %%fs:0,%0\n\t" \
+ "add " #x "@gottpoff(%%rip),%0" \
: "=r" (__l)); \
__l; })
@@ -122,9 +122,15 @@
: : "rdi", "rsi", "r8", "r9", "r10", "r11"); \
__l; })
+# ifdef __ILP32__
+# define TLS_GD_PREFIX
+# else
+# define TLS_GD_PREFIX ".byte 0x66\n\t"
+# endif
+
# define TLS_GD(x) \
({ int *__l, __c, __d; \
- asm (".byte 0x66\n\t" \
+ asm (TLS_GD_PREFIX \
"leaq " #x "@tlsgd(%%rip),%%rdi\n\t" \
".word 0x6666\n\t" \
"rex64\n\t" \
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 14 ++++++++++++++
elf/stackguard-macros.h | 4 +++-
elf/tls-macros.h | 16 +++++++++++-----
nptl/sysdeps/x86_64/x32/tls.h | 10 +++++-----
4 files changed, 33 insertions(+), 11 deletions(-)
hooks/post-receive
--
GNU C Library master sources