[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r13231 - in /branches/eglibc-2_11/ports: ChangeLog.arm sysdeps/arm/sysdep.h
- To: commits@xxxxxxxxxx
- Subject: [commits] r13231 - in /branches/eglibc-2_11/ports: ChangeLog.arm sysdeps/arm/sysdep.h
- From: joseph@xxxxxxxxxx
- Date: Mon, 21 Mar 2011 17:54:41 -0000
Author: joseph
Date: Mon Mar 21 10:54:40 2011
New Revision: 13231
Log:
Merge changes between r12755 and r13230 from /fsf/glibc-2_11-branch.
Modified:
branches/eglibc-2_11/ports/ChangeLog.arm
branches/eglibc-2_11/ports/sysdeps/arm/sysdep.h
Modified: branches/eglibc-2_11/ports/ChangeLog.arm
==============================================================================
--- branches/eglibc-2_11/ports/ChangeLog.arm (original)
+++ branches/eglibc-2_11/ports/ChangeLog.arm Mon Mar 21 10:54:40 2011
@@ -1,3 +1,10 @@
+2011-02-16 Manjunath Matti <manjunath81@xxxxxxxxx>
+
+ * 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@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/arm/bits/mman.h (MADV_HUGEPAGE,
Modified: branches/eglibc-2_11/ports/sysdeps/arm/sysdep.h
==============================================================================
--- branches/eglibc-2_11/ports/sysdeps/arm/sysdep.h (original)
+++ branches/eglibc-2_11/ports/sysdeps/arm/sysdep.h Mon Mar 21 10:54:40 2011
@@ -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__))
@@ -89,10 +90,16 @@
/* If compiled for profiling, call `mcount' at the start of each function. */
#ifdef PROF
+#if __GNUC_PREREQ(4,4) && defined(__ARM_EABI__)
+#define CALL_MCOUNT \
+ str lr,[sp, #-4]! ; \
+ bl PLTJMP(mcount) ;
+#else
#define CALL_MCOUNT \
str lr,[sp, #-4]! ; \
bl PLTJMP(mcount) ; \
ldr lr, [sp], #4 ;
+#endif
#else
#define CALL_MCOUNT /* Do nothing. */
#endif
@@ -102,7 +109,11 @@
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__)