summaryrefslogtreecommitdiff
path: root/recipes/glibc/files/armv4t-interworking.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/glibc/files/armv4t-interworking.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/glibc/files/armv4t-interworking.patch')
-rw-r--r--recipes/glibc/files/armv4t-interworking.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/recipes/glibc/files/armv4t-interworking.patch b/recipes/glibc/files/armv4t-interworking.patch
new file mode 100644
index 0000000000..ce91ad6530
--- /dev/null
+++ b/recipes/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)