[oe-commits] Philip Blundell : glibc-2.6.1: fix interworking for armv4t
GIT User account
git at amethyst.openembedded.net
Sat Oct 25 10:13:26 UTC 2008
Module: openembedded.git
Branch: org.openembedded.dev
Commit: 0e578dfc600390132af6a4909f1e9f59952720e9
URL: http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=0e578dfc600390132af6a4909f1e9f59952720e9
Author: Philip Blundell <pb at mill.internal.reciva.com>
Date: Sat Oct 25 11:03:22 2008 +0100
glibc-2.6.1: fix interworking for armv4t
---
packages/glibc/files/armv4t-interworking.patch | 47 ++++++++++++++++++++++++
packages/glibc/glibc_2.6.1.bb | 3 +-
2 files changed, 49 insertions(+), 1 deletions(-)
diff --git a/packages/glibc/files/armv4t-interworking.patch b/packages/glibc/files/armv4t-interworking.patch
new file mode 100644
index 0000000..ce91ad6
--- /dev/null
+++ b/packages/glibc/files/armv4t-interworking.patch
@@ -0,0 +1,47 @@
+--- libc/ports/sysdeps/arm/memcpy.S~ 2006-10-31 17:07:54.000000000 +0000
++++ libc/ports/sysdeps/arm/memcpy.S 2008-10-24 11:09:34.000000000 +0100
+@@ -130,7 +130,12 @@
+ 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
+--- libc/ports/sysdeps/arm/memmove.S~ 2006-10-31 17:07:54.000000000 +0000
++++ libc/ports/sysdeps/arm/memmove.S 2008-10-24 11:09:44.000000000 +0100
+@@ -140,7 +140,12 @@
+ 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]!
+--- libc/ports/sysdeps/unix/sysv/linux/arm/clone.S~ 2005-11-16 19:03:42.000000000 +0000
++++ libc/ports/sysdeps/unix/sysv/linux/arm/clone.S 2008-10-24 11:11:05.000000000 +0100
+@@ -96,8 +96,14 @@
+ #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(_exit)
diff --git a/packages/glibc/glibc_2.6.1.bb b/packages/glibc/glibc_2.6.1.bb
index c563a1f..1f72ff0 100644
--- a/packages/glibc/glibc_2.6.1.bb
+++ b/packages/glibc/glibc_2.6.1.bb
@@ -1,5 +1,5 @@
require glibc.inc
-PR = "r13"
+PR = "r14"
PACKAGES_DYNAMIC = "libc6*"
RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
@@ -57,6 +57,7 @@ SRC_URI = "\
file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
file://glibc-use-isystem-include-fixed.patch;patch=1 \
file://glibc-arm-no-asm-page.patch;patch=1 \
+ file://armv4t-interworking.patch;patch=1 \
"
# Build fails on sh3 and sh4 without additional patches
More information about the Openembedded-commits
mailing list