diff options
-rw-r--r-- | recipes/eglibc/eglibc_2.10.bb | 2 | ||||
-rw-r--r-- | recipes/eglibc/eglibc_2.9.bb | 2 | ||||
-rw-r--r-- | recipes/eglibc/eglibc_svn.bb | 2 | ||||
-rw-r--r-- | recipes/eglibc/files/armv4t-interworking.patch | 27 |
4 files changed, 29 insertions, 4 deletions
diff --git a/recipes/eglibc/eglibc_2.10.bb b/recipes/eglibc/eglibc_2.10.bb index d143b0ad0c..2a62fe3828 100644 --- a/recipes/eglibc/eglibc_2.10.bb +++ b/recipes/eglibc/eglibc_2.10.bb @@ -3,7 +3,7 @@ require eglibc.inc DEPENDS += "gperf-native" FILESPATHPKG =. "eglibc-svn:" PV = "2.10" -PR = "${INC_PR}.4" +PR = "${INC_PR}.5" SVN_REV="9124" EGLIBC_BRANCH="eglibc-2_10" SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_10;rev=${SVN_REV};proto=svn \ diff --git a/recipes/eglibc/eglibc_2.9.bb b/recipes/eglibc/eglibc_2.9.bb index 3efcb36d37..7a8262783e 100644 --- a/recipes/eglibc/eglibc_2.9.bb +++ b/recipes/eglibc/eglibc_2.9.bb @@ -3,7 +3,7 @@ require eglibc.inc DEPENDS += "gperf-native" FILESPATHPKG =. "eglibc-svn:" PV = "2.9" -PR = "${INC_PR}.5" +PR = "${INC_PR}.6" SVN_REV="8690" EGLIBC_BRANCH="eglibc-2_9" SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_9;rev=${SVN_REV};proto=svn \ diff --git a/recipes/eglibc/eglibc_svn.bb b/recipes/eglibc/eglibc_svn.bb index 1a91af88d8..3376839040 100644 --- a/recipes/eglibc/eglibc_svn.bb +++ b/recipes/eglibc/eglibc_svn.bb @@ -5,7 +5,7 @@ SRCREV = "9170" DEFAULT_PREFERENCE = "-1" FILESPATHPKG =. "eglibc-svn:" PV = "2.10+svnr${SRCREV}" -PR = "${INC_PR}.1" +PR = "${INC_PR}.2" EGLIBC_BRANCH="trunk" SRC_URI = "svn://svn.eglibc.org;module=trunk \ file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \ diff --git a/recipes/eglibc/files/armv4t-interworking.patch b/recipes/eglibc/files/armv4t-interworking.patch index 55ee8565d7..6ab306180c 100644 --- a/recipes/eglibc/files/armv4t-interworking.patch +++ b/recipes/eglibc/files/armv4t-interworking.patch @@ -40,7 +40,7 @@ Index: libc/ports/sysdeps/unix/sysv/linux/arm/clone.S #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__) ++#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__) + ldr ip, [sp], #8 + mov lr, pc + bx ip @@ -51,3 +51,28 @@ Index: libc/ports/sysdeps/unix/sysv/linux/arm/clone.S @ and we are done, passing the return value through r0 b PLTJMP(HIDDEN_JUMPTARGET(_exit)) +Index: libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h +=================================================================== +--- libc.orig/ports/sysdeps/unix/sysv/linux/arm/sysdep.h 2009-09-16 13:58:18.000000000 +0100 ++++ libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h 2009-11-03 19:17:16.000000000 +0000 +@@ -129,6 +129,11 @@ + DO_RET(lr); \ + 1: .word C_SYMBOL_NAME(rtld_errno) - 0b - 8; + # else ++#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__) ++#define POP_PC ldr lr, [sp], #4; bx lr ++#else ++#define POP_PC ldr pc, [sp], #4 ++#endif + # define SYSCALL_ERROR_HANDLER \ + __local_syscall_error: \ + str lr, [sp, #-4]!; \ +@@ -138,7 +143,7 @@ + rsb r1, r1, #0; \ + str r1, [r0]; \ + mvn r0, #0; \ +- ldr pc, [sp], #4; ++ POP_PC; + # endif + #else + # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */ |