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-863-g11de3a3
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 14 May 2012 22:17:42 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.15-863-g11de3a3
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 11de3a3371c18b6fe955d4b43071656baf4b8804 (commit)
via e02f153a1ab75b95e3991dd9dbd3b9220dc9c3ae (commit)
from 520ae0fd0bc4dbb57f103eedc818d6c1b39be13e (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=11de3a3371c18b6fe955d4b43071656baf4b8804
commit 11de3a3371c18b6fe955d4b43071656baf4b8804
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 14 15:17:30 2012 -0700
Update elf_machine_load_address for x32
diff --git a/ChangeLog b/ChangeLog
index 6fbcc32..7c487bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2012-05-14 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/x86_64/dl-machine.h (elf_machine_load_address): Remove
+ the `q' suffix from lea and replace .quad with ASM_ADDR.
+
+2012-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/unix/sysv/linux/x86_64/sysdep.h (PTR_MANGLE): Remove
the `q' suffix from xor/rol instructions. Use $2*LP_SIZE+1
instead of $17.
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 32814b1..9c27ecf 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -72,10 +72,10 @@ elf_machine_load_address (void)
load offset which is zero if the binary was loaded at the address
it is prelinked for. */
- asm ("leaq _dl_start(%%rip), %0\n\t"
- "subq 1f(%%rip), %0\n\t"
+ asm ("lea _dl_start(%%rip), %0\n\t"
+ "sub 1f(%%rip), %0\n\t"
".section\t.data.rel.ro\n"
- "1:\t.quad _dl_start\n\t"
+ "1:\t" ASM_ADDR " _dl_start\n\t"
".previous\n\t"
: "=r" (addr) : : "cc");
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e02f153a1ab75b95e3991dd9dbd3b9220dc9c3ae
commit e02f153a1ab75b95e3991dd9dbd3b9220dc9c3ae
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 14 15:16:27 2012 -0700
Update x86_64 PTR_MANGLE/PTR_DEMANGLE for x32
diff --git a/ChangeLog b/ChangeLog
index 499d127..6fbcc32 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2012-05-14 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/unix/sysv/linux/x86_64/sysdep.h (PTR_MANGLE): Remove
+ the `q' suffix from xor/rol instructions. Use $2*LP_SIZE+1
+ instead of $17.
+ (PTR_DEMANGLE): Likewise.
+
+2012-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/x86_64/sysdep.h (LP_SIZE): New macro.
(LP_OP): Likewise.
(ASM_ADDR): Likewise.
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index c9c4dbd..aae4cb0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -342,33 +342,33 @@
/* We cannot use the thread descriptor because in ld.so we use setjmp
earlier than the descriptor is initialized. */
# ifdef __ASSEMBLER__
-# define PTR_MANGLE(reg) xorq __pointer_chk_guard_local(%rip), reg; \
- rolq $17, reg
-# define PTR_DEMANGLE(reg) rorq $17, reg; \
- xorq __pointer_chk_guard_local(%rip), reg
+# define PTR_MANGLE(reg) xor __pointer_chk_guard_local(%rip), reg; \
+ rol $2*LP_SIZE+1, reg
+# define PTR_DEMANGLE(reg) ror $2*LP_SIZE+1, reg; \
+ xor __pointer_chk_guard_local(%rip), reg
# else
-# define PTR_MANGLE(reg) asm ("xorq __pointer_chk_guard_local(%%rip), %0\n" \
- "rolq $17, %0" \
+# define PTR_MANGLE(reg) asm ("xor __pointer_chk_guard_local(%%rip), %0\n" \
+ "rol $2*" LP_SIZE "+1, %0" \
: "=r" (reg) : "0" (reg))
-# define PTR_DEMANGLE(reg) asm ("rorq $17, %0\n" \
- "xorq __pointer_chk_guard_local(%%rip), %0" \
+# define PTR_DEMANGLE(reg) asm ("ror $2*" LP_SIZE "+1, %0\n" \
+ "xor __pointer_chk_guard_local(%%rip), %0" \
: "=r" (reg) : "0" (reg))
# endif
#else
# ifdef __ASSEMBLER__
-# define PTR_MANGLE(reg) xorq %fs:POINTER_GUARD, reg; \
- rolq $17, reg
-# define PTR_DEMANGLE(reg) rorq $17, reg; \
- xorq %fs:POINTER_GUARD, reg
+# define PTR_MANGLE(reg) xor %fs:POINTER_GUARD, reg; \
+ rol $2*LP_SIZE+1, reg
+# define PTR_DEMANGLE(reg) ror $2*LP_SIZE+1, reg; \
+ xor %fs:POINTER_GUARD, reg
# else
-# define PTR_MANGLE(var) asm ("xorq %%fs:%c2, %0\n" \
- "rolq $17, %0" \
+# define PTR_MANGLE(var) asm ("xor %%fs:%c2, %0\n" \
+ "rol $2*" LP_SIZE "+1, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
-# define PTR_DEMANGLE(var) asm ("rorq $17, %0\n" \
- "xorq %%fs:%c2, %0" \
+# define PTR_DEMANGLE(var) asm ("ror $2*" LP_SIZE "+1, %0\n" \
+ "xor %%fs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 12 +++++++++++
sysdeps/unix/sysv/linux/x86_64/sysdep.h | 32 +++++++++++++++---------------
sysdeps/x86_64/dl-machine.h | 6 ++--
3 files changed, 31 insertions(+), 19 deletions(-)
hooks/post-receive
--
GNU C Library master sources