[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



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__)