Community source repository for glibc add-on ports branch, master, updated. glibc-2.13-1-g94fd527

jsm28@sourceware.org jsm28@sourceware.org
Wed Feb 16 17:30:00 GMT 2011


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 "Community source repository for glibc add-on ports".

The branch, master has been updated
       via  94fd527b67373373ebf6364d8b42c1d9fac1ea1c (commit)
      from  75bbd6583321cfa8847065d2882f3a883c5228ed (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-ports.git;a=commitdiff;h=94fd527b67373373ebf6364d8b42c1d9fac1ea1c

commit 94fd527b67373373ebf6364d8b42c1d9fac1ea1c
Author: Manjunath Matti <manjunath81@gmail.com>
Date:   Wed Feb 16 17:30:13 2011 +0000

    Fix profiling libc for ARM EABI to use __gnu_mcount_nc interface when available.

diff --git a/ChangeLog.arm b/ChangeLog.arm
index 8ea3b9e..5e59f09 100644
--- a/ChangeLog.arm
+++ b/ChangeLog.arm
@@ -1,3 +1,10 @@
+2011-02-16  Manjunath Matti  <manjunath81@gmail.com>
+
+	* sysdeps/arm/sysdep.h (CALL_MCOUNT): Use __gnu_mcount_nc
+	interface for EABI with GCC 4.4 or later.
+	(mcount): Define to __gnu_mcount_nc for EABI with GCC 4.4 or
+	later.
+
 2011-01-25  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/arm/bits/mman.h (MADV_HUGEPAGE,
diff --git a/sysdeps/arm/sysdep.h b/sysdeps/arm/sysdep.h
index 9ffd7df..5c01ef0 100644
--- a/sysdeps/arm/sysdep.h
+++ b/sysdeps/arm/sysdep.h
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <sysdeps/generic/sysdep.h>
+#include <features.h>
 
 #if (!defined (__ARM_ARCH_2__) && !defined (__ARM_ARCH_3__) \
      && !defined (__ARM_ARCH_3M__) && !defined (__ARM_ARCH_4__))
@@ -92,6 +93,16 @@
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
+/* Call __gnu_mcount_nc if GCC >= 4.4 and abi = EABI.  */
+#if __GNUC_PREREQ(4,4) && defined(__ARM_EABI__)
+#define CALL_MCOUNT \
+  str	lr,[sp, #-4]!; \
+  cfi_adjust_cfa_offset (4); \
+  cfi_rel_offset (lr, 0); \
+  bl PLTJMP(mcount); \
+  cfi_adjust_cfa_offset (-4); \
+  cfi_restore (lr)
+#else /* else call _mcount */
 #define CALL_MCOUNT \
   str	lr,[sp, #-4]!; \
   cfi_adjust_cfa_offset (4); \
@@ -100,6 +111,7 @@
   ldr lr, [sp], #4; \
   cfi_adjust_cfa_offset (-4); \
   cfi_restore (lr)
+#endif
 #else
 #define CALL_MCOUNT		/* Do nothing.  */
 #endif
@@ -109,8 +121,12 @@
    on this system, the asm identifier `syscall_error' intrudes on the
    C name space.  Make sure we use an innocuous name.  */
 #define	syscall_error	__syscall_error
+#if __GNUC_PREREQ(4,4) && defined(__ARM_EABI__)
+#define mcount		__gnu_mcount_nc
+#else
 #define mcount		_mcount
 #endif
+#endif
 
 #if defined(__ARM_EABI__)
 /* Tag_ABI_align8_preserved: This code preserves 8-byte

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog.arm        |    7 +++++++
 sysdeps/arm/sysdep.h |   16 ++++++++++++++++
 2 files changed, 23 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
Community source repository for glibc add-on ports



More information about the Glibc-cvs mailing list