This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] ARM: Fix clone build for ARMv4


On 23 January 2014 17:30, Carlos O'Donell <carlos@redhat.com> wrote:
> On 01/23/2014 06:49 AM, Will Newton wrote:
>> ARMv4 does not have the blx instruction, so use the BLX macro which
>> handles abstracting this for us.
>>
>> ports/ChangeLog.arm:
>>
>> 2014-01-23  Will Newton  <will.newton@linaro.org>
>>
>>       [BZ #16499]
>>       * sysdeps/unix/sysv/linux/arm/clone.S: Use BLX macro instead
>>       of blx instruction directly.
>> ---
>>  ports/sysdeps/unix/sysv/linux/arm/clone.S | 8 +-------
>>  1 file changed, 1 insertion(+), 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)
>
> Looks good.
>
>>
>>       @ and we are done, passing the return value through r0
>>       b       PLTJMP(HIDDEN_JUMPTARGET(_exit))
>>
>
> Did you test this or ask the submitter to test it?
>
> If he says it works then OK to commit.

I have tested this on armv7, I don't have an armv4 capable toolchain
at the moment to test it for that arch.

I've added Mike to CC so he can take a look.

Thanks,

-- 
Will Newton
Toolchain Working Group, Linaro


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]