[oe-commits] Khem Raj : eglibc: Forward port armv4t-interworking patch

git version control git at git.openembedded.org
Fri Oct 30 10:56:57 UTC 2009


Module: openembedded.git
Branch: shr/merge
Commit: bd449d860fac2948f0d9109f1cdefd0d2d4a5200
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=bd449d860fac2948f0d9109f1cdefd0d2d4a5200

Author: Khem Raj <raj.khem at gmail.com>
Date:   Wed Oct 28 13:06:13 2009 -0700

eglibc: Forward port armv4t-interworking patch

* This patch is needed to support armv4t targets.

Signed-off-by: Khem Raj <raj.khem at gmail.com>

---

 recipes/eglibc/eglibc_2.10.bb                  |    3 +-
 recipes/eglibc/eglibc_2.9.bb                   |    3 +-
 recipes/eglibc/eglibc_svn.bb                   |    1 +
 recipes/eglibc/files/armv4t-interworking.patch |   53 ++++++++++++++++++++++++
 4 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/recipes/eglibc/eglibc_2.10.bb b/recipes/eglibc/eglibc_2.10.bb
index d15bd61..1bd3d6e 100644
--- a/recipes/eglibc/eglibc_2.10.bb
+++ b/recipes/eglibc/eglibc_2.10.bb
@@ -3,11 +3,12 @@ require eglibc.inc
 DEPENDS += "gperf-native"
 FILESPATHPKG =. "eglibc-svn:"
 PV = "2.10"
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
 SVN_REV="9124"
 EGLIBC_BRANCH="eglibc-2_10"
 SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_10;rev=${SVN_REV};proto=svn \
            file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
+           file://armv4t-interworking.patch;patch=1 \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/eglibc_2.9.bb b/recipes/eglibc/eglibc_2.9.bb
index bc1b041..6b27745 100644
--- a/recipes/eglibc/eglibc_2.9.bb
+++ b/recipes/eglibc/eglibc_2.9.bb
@@ -3,11 +3,12 @@ require eglibc.inc
 DEPENDS += "gperf-native"
 FILESPATHPKG =. "eglibc-svn:"
 PV = "2.9"
-PR = "${INC_PR}.3"
+PR = "${INC_PR}.4"
 SVN_REV="8690"
 EGLIBC_BRANCH="eglibc-2_9"
 SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_9;rev=${SVN_REV};proto=svn \
            file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
+	   file://armv4t-interworking.patch;patch=1 \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/eglibc_svn.bb b/recipes/eglibc/eglibc_svn.bb
index f652c61..1988350 100644
--- a/recipes/eglibc/eglibc_svn.bb
+++ b/recipes/eglibc/eglibc_svn.bb
@@ -9,6 +9,7 @@ PR = "${INC_PR}.1"
 EGLIBC_BRANCH="trunk"
 SRC_URI = "svn://svn.eglibc.org;module=trunk \
            file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
+	   file://armv4t-interworking.patch;patch=1 \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/files/armv4t-interworking.patch b/recipes/eglibc/files/armv4t-interworking.patch
new file mode 100644
index 0000000..55ee856
--- /dev/null
+++ b/recipes/eglibc/files/armv4t-interworking.patch
@@ -0,0 +1,53 @@
+Index: libc/ports/sysdeps/arm/memcpy.S
+===================================================================
+--- libc.orig/ports/sysdeps/arm/memcpy.S	2009-09-03 16:12:00.000000000 -0700
++++ libc/ports/sysdeps/arm/memcpy.S	2009-10-28 12:51:22.000000000 -0700
+@@ -130,7 +130,12 @@ ENTRY(memcpy)
+ 		strcsb	r4, [r0], #1
+ 		strcsb	ip, [r0]
+ 
++#if defined (__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
++		ldmfd	sp!, {r0, r4, lr}
++                bx      lr
++#else
+ 		ldmfd	sp!, {r0, r4, pc}
++#endif
+ 
+ 9:		rsb	ip, ip, #4
+ 		cmp	ip, #2
+Index: libc/ports/sysdeps/arm/memmove.S
+===================================================================
+--- libc.orig/ports/sysdeps/arm/memmove.S	2009-09-03 16:12:00.000000000 -0700
++++ libc/ports/sysdeps/arm/memmove.S	2009-10-28 12:51:22.000000000 -0700
+@@ -144,7 +144,12 @@ ENTRY(memmove)
+ 		strneb	r3, [r0, #-1]!
+ 		strcsb	r4, [r0, #-1]!
+ 		strcsb	ip, [r0, #-1]
++#if defined (__ARM_ARCH_4T__) && defined (__THUMB_INTERWORK__)
++		ldmfd	sp!, {r0, r4, lr}
++                bx      lr
++#else
+ 		ldmfd	sp!, {r0, r4, pc}
++#endif
+ 
+ 9:		cmp	ip, #2
+ 		ldrgtb	r3, [r1, #-1]!
+Index: libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
+===================================================================
+--- libc.orig/ports/sysdeps/unix/sysv/linux/arm/clone.S	2009-09-03 16:12:04.000000000 -0700
++++ libc/ports/sysdeps/unix/sysv/linux/arm/clone.S	2009-10-28 12:51:22.000000000 -0700
+@@ -96,8 +96,14 @@ ENTRY(__clone)
+ #endif
+ 	@ pick the function arg and call address off the stack and execute
+ 	ldr	r0, [sp, #4]
++#if defined(__ARM_ARCH_V4T__) && defined(__THUMB_INTERWORK__)
++	ldr 	ip, [sp], #8
++	mov	lr, pc
++        bx      ip
++#else
+ 	mov	lr, pc
+ 	ldr 	pc, [sp], #8
++#endif
+ 
+ 	@ and we are done, passing the return value through r0
+ 	b	PLTJMP(HIDDEN_JUMPTARGET(_exit))





More information about the Openembedded-commits mailing list