]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
ARM: Fix clone build for ARMv4
authorWill Newton <will.newton@linaro.org>
Thu, 23 Jan 2014 11:11:24 +0000 (11:11 +0000)
committerWill Newton <will.newton@linaro.org>
Fri, 24 Jan 2014 13:15:46 +0000 (13:15 +0000)
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.

ports/ChangeLog.arm
ports/sysdeps/unix/sysv/linux/arm/clone.S

index 4371b3ccfb57c60f9110f4867226fb2c1a658b91..51bb76b992ea348d760d0d6621a521f2a02b02fe 100644 (file)
@@ -1,3 +1,9 @@
+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.
+
 2014-01-14  Will Newton  <will.newton@linaro.org>
 
        * sysdeps/arm/__longjmp.S: Don't apply pointer encryption
index 44286a5cd0b7196259038d2881bf164170841022..03fe9ab7284007b7eb45ec06177ba7cf53f6df15 100644 (file)
@@ -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))