This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [PATCH] ARM: Fix clone build for ARMv4
- From: Will Newton <will dot newton at linaro dot org>
- To: "Carlos O'Donell" <carlos at redhat dot com>
- Cc: "libc-ports at sourceware dot org" <libc-ports at sourceware dot org>, Patch Tracking <patches at linaro dot org>, Mike Frysinger <vapier at gentoo dot org>
- Date: Fri, 24 Jan 2014 13:17:33 +0000
- Subject: Re: [PATCH] ARM: Fix clone build for ARMv4
- Authentication-results: sourceware.org; auth=none
- References: <1390477771-30826-1-git-send-email-will dot newton at linaro dot org> <52E151CE dot 20103 at redhat dot com> <CANu=Dmhh3WtDJAPipaAtLT5k9LFLdWex=aPmecO_zEicB9UXTQ at mail dot gmail dot com>
On 23 January 2014 18:22, Will Newton <will.newton@linaro.org> wrote:
> 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 figured out the correct value of CFLAGS to get a build for armv4
(and armv4t) and the patch fixes the issue, so I have committed it.
--
Will Newton
Toolchain Working Group, Linaro