[oe] [PATCH] eglibc: updated armv4t-interworking.patch
Khem Raj
raj.khem at gmail.com
Wed Nov 4 18:28:00 UTC 2009
On Wed, Nov 4, 2009 at 1:03 AM, Martin.Jansa <martin.jansa at gmail.com> wrote:
> From: Martin Jansa <Martin.Jansa at gmail.com>
>
> * Updated patch to make SYSCALL_ERROR_HANDLER interworking safe.
> * Phil Blundell found and fixed another issue in eglibc armv4t builds.
>
> Signed-off-by: Martin.Jansa <Martin.Jansa at gmail.com>
> ---
> recipes/eglibc/eglibc_2.10.bb | 2 +-
> recipes/eglibc/eglibc_2.9.bb | 2 +-
> recipes/eglibc/eglibc_svn.bb | 2 +-
> 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 d143b0a..2a62fe3 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 3efcb36..7a82627 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 1a91af8..3376839 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 55ee856..6ab3061 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. */
> --
> 1.6.5.2
>
there is already a define __USE_BX__ and another macro BX(reg)
I think they should be used here instead
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
More information about the Openembedded-devel
mailing list