On 1 November 2014 09:59, Sergei Poselenov <[email protected]> wrote: > commit 5c6eec82dd4ef1962b92d5d6531f14b6d7a6a30a > Author: Sergei Poselenov <[email protected]> > Date: Sun Oct 26 14:53:32 2014 +0400 > > Fixed clone() for Cortex-M3.
Can you please elaborate? thanks, > > Signed-off-by: Sergei Poselenov <[email protected]> > > diff --git a/libc/sysdeps/linux/arm/clone.S b/libc/sysdeps/linux/arm/clone.S > index fdc05b8..6c89a10 100644 > --- a/libc/sysdeps/linux/arm/clone.S > +++ b/libc/sysdeps/linux/arm/clone.S > @@ -104,26 +104,24 @@ __clone: > @ get flags > mov r0, r2 > @ new sp is already in r1 > - @ load remaining arguments off the stack > - stmfd sp!, {r4} > - ldr r2, [sp, #4] > - ldr r3, [sp, #8] > - ldr r4, [sp, #12] > DO_CALL (clone) > movs a1, a1 > blt __error > - ldmnefd sp!, {r4} > IT(t, ne) > #if defined(__USE_BX__) > bxne lr > #else > movne pc, lr > #endif > - > @ pick the function arg and call address off the stack and execute > ldr r0, [sp, #4] > - mov lr, pc > - ldr pc, [sp] > +#if defined(__USE_BX__) > + ldr r1, [sp] > + blx r1 > +#else > + mov lr, pc > + ldr pc, [sp] > +#endif > > @ and we are done, passing the return value through r0 > b HIDDEN_JUMPTARGET(_exit) > > _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
