[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r11178 - in /fsf/trunk/libc: ChangeLog Versions.def stdlib/Versions sysdeps/i386/i386-mcount.S sysdeps/x86_64/_mcount.S
- To: commits@xxxxxxxxxx
- Subject: [commits] r11178 - in /fsf/trunk/libc: ChangeLog Versions.def stdlib/Versions sysdeps/i386/i386-mcount.S sysdeps/x86_64/_mcount.S
- From: eglibc@xxxxxxxxxx
- Date: Sun, 08 Aug 2010 07:03:04 -0000
Author: eglibc
Date: Sun Aug 8 00:03:04 2010
New Revision: 11178
Log:
Import glibc-mainline for 2010-08-08
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/Versions.def
fsf/trunk/libc/stdlib/Versions
fsf/trunk/libc/sysdeps/i386/i386-mcount.S
fsf/trunk/libc/sysdeps/x86_64/_mcount.S
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sun Aug 8 00:03:04 2010
@@ -1,3 +1,10 @@
+2010-07-17 Andi Kleen <ak@xxxxxxxxxxxxxxx>
+
+ * sysdeps/i386/i386-mcount.S (__fentry__): Define.
+ * sysdeps/x86_64/_mcount.S (__fentry__): Define.
+ * stdlib/Versions (__fentry__): Add for GLIBC 2.13
+ * Versions.def [GLIBC_2.13]: Add.
+
2010-08-06 Ulrich Drepper <drepper@xxxxxxxxxx>
* sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
Modified: fsf/trunk/libc/Versions.def
==============================================================================
--- fsf/trunk/libc/Versions.def (original)
+++ fsf/trunk/libc/Versions.def Sun Aug 8 00:03:04 2010
@@ -29,6 +29,7 @@
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
+ GLIBC_2.13
%ifdef USE_IN_LIBIO
HURD_CTHREADS_0.3
%endif
Modified: fsf/trunk/libc/stdlib/Versions
==============================================================================
--- fsf/trunk/libc/stdlib/Versions (original)
+++ fsf/trunk/libc/stdlib/Versions Sun Aug 8 00:03:04 2010
@@ -100,6 +100,9 @@
GLIBC_2.10 {
quick_exit; __cxa_at_quick_exit;
}
+ GLIBC_2.13 {
+ __fentry__;
+ }
GLIBC_PRIVATE {
# functions which have an additional interface since they are
# are cancelable.
Modified: fsf/trunk/libc/sysdeps/i386/i386-mcount.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/i386-mcount.S (original)
+++ fsf/trunk/libc/sysdeps/i386/i386-mcount.S Sun Aug 8 00:03:04 2010
@@ -53,3 +53,28 @@
#undef mcount
weak_alias (_mcount, mcount)
+
+ /* Same as above, but doesn't require a frame pointer */
+ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(__fentry__)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
+ .align ALIGNARG(4)
+C_LABEL(__fentry__)
+ /* Save the caller-clobbered registers. */
+ pushl %eax
+ pushl %ecx
+ pushl %edx
+
+ movl 12(%esp), %edx
+ movl 16(%esp), %eax
+
+ /* No need to access the PLT or GOT, __mcount_internal is an
+ internal function and we can make a relative call. */
+ call C_SYMBOL_NAME(__mcount_internal)
+
+ /* Pop the saved registers. Please note that `__fentry__' has no
+ return value. */
+ popl %edx
+ popl %ecx
+ popl %eax
+ ret
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__fentry__))
Modified: fsf/trunk/libc/sysdeps/x86_64/_mcount.S
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/_mcount.S (original)
+++ fsf/trunk/libc/sysdeps/x86_64/_mcount.S Sun Aug 8 00:03:04 2010
@@ -65,3 +65,41 @@
#undef mcount
weak_alias (_mcount, mcount)
+
+ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(__fentry__)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
+ .align ALIGNARG(4)
+C_LABEL(__fentry__)
+ /* Allocate space for 7 registers. */
+ subq $64,%rsp
+ movq %rax,(%rsp)
+ movq %rcx,8(%rsp)
+ movq %rdx,16(%rsp)
+ movq %rsi,24(%rsp)
+ movq %rdi,32(%rsp)
+ movq %r8,40(%rsp)
+ movq %r9,48(%rsp)
+
+ /* Setup parameter for __mcount_internal. */
+ /* selfpc is the return address on the stack. */
+ movq 64(%rsp),%rsi
+ /* caller is the return address above it */
+ movq 72(%rsp),%rdi
+#ifdef PIC
+ call C_SYMBOL_NAME(__mcount_internal)@PLT
+#else
+ call C_SYMBOL_NAME(__mcount_internal)
+#endif
+ /* Pop the saved registers. Please note that `__fentry__' has no
+ return value. */
+ movq 48(%rsp),%r9
+ movq 40(%rsp),%r8
+ movq 32(%rsp),%rdi
+ movq 24(%rsp),%rsi
+ movq 16(%rsp),%rdx
+ movq 8(%rsp),%rcx
+ movq (%rsp),%rax
+ addq $64,%rsp
+ ret
+
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__fentry__))