Change clone.S so that in FDPIC case we take into account the fact
that we are given a function descriptor.
* libc/sysdeps/linux/arm/clone.S (__clone): Support __FDPIC__.
Signed-off-by: Mickaël Guêné <[email protected]>
Signed-off-by: Christophe Lyon <[email protected]>
.cantunwind
@ pick the function arg and call address off the stack and execute
ldr r0, [sp, #4]
+#if defined(__FDPIC__)
+ ldr r12, [sp]
+ mov r4, r9
+ ldr r9, [r12, #4]
+ mov lr, pc
+ ldr pc, [r12]
+#else
mov lr, pc
ldr pc, [sp]
+#endif
+
+#if defined(__FDPIC__)
+ mov r9, r4
+#endif
@ and we are done, passing the return value through r0
b HIDDEN_JUMPTARGET(_exit)