From: Will Newton Date: Thu, 23 Jan 2014 11:11:24 +0000 (+0000) Subject: ARM: Fix clone build for ARMv4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f09e8aec0cf7a8ddda8ae04859f3e256c1741775;p=thirdparty%2Fglibc.git ARM: Fix clone build for ARMv4 ARMv4 does not have the blx instruction, so use the BLX macro which handles abstracting this for us. Build tested for armv7, armv4t and armv4. ports/ChangeLog.arm: 2014-01-24 Will Newton [BZ #16499] * sysdeps/unix/sysv/linux/arm/clone.S: Use BLX macro instead of blx instruction directly. (cherry picked from commit 47590bce28616abbcee93457da91d65a7a07589b) --- diff --git a/ports/sysdeps/unix/sysv/linux/arm/clone.S b/ports/sysdeps/unix/sysv/linux/arm/clone.S index 6e74fa702b5..1f45cf3841a 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/clone.S +++ b/ports/sysdeps/unix/sysv/linux/arm/clone.S @@ -88,14 +88,8 @@ PSEUDO_END (__clone) #endif @ pick the function arg and call address off the stack and execute ldr r0, [sp, #4] -#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__) ldr ip, [sp], #8 - mov lr, pc - bx ip -#else - ldr lr, [sp], #8 - blx lr -#endif + BLX (ip) @ and we are done, passing the return value through r0 b PLTJMP(HIDDEN_JUMPTARGET(_exit))