diff options
author | Will Newton <will.newton@linaro.org> | 2014-01-23 11:11:24 +0000 |
---|---|---|
committer | Will Newton <will.newton@linaro.org> | 2014-01-24 13:15:46 +0000 |
commit | 47590bce28616abbcee93457da91d65a7a07589b (patch) | |
tree | a0c893f031460849d47a9fb2476a753bdcb6dbd1 /ports/sysdeps | |
parent | 5d41dadf31bc8a2f9c34c40d52a442d3794e405c (diff) | |
download | glibc-47590bce28616abbcee93457da91d65a7a07589b.zip glibc-47590bce28616abbcee93457da91d65a7a07589b.tar.gz glibc-47590bce28616abbcee93457da91d65a7a07589b.tar.bz2 |
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 <will.newton@linaro.org>
[BZ #16499]
* sysdeps/unix/sysv/linux/arm/clone.S: Use BLX macro instead
of blx instruction directly.
Diffstat (limited to 'ports/sysdeps')
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/arm/clone.S | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/arm/clone.S b/ports/sysdeps/unix/sysv/linux/arm/clone.S index 44286a5..03fe9ab 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)) |