uClibc fails to build for ARM architecture (clone.S:115 error)...

Alex Pilafian sikanrong at gmail.com
Wed Nov 9 11:51:25 UTC 2011


I will try later to put this in a proper diff. but I'm pretty busy..

-- -- --

Just to better explain my reasoning here: in thumb the "ne" in ldmnefd
is going to be ignored, since Thumb arch ignores the conditional bits
of all instructions. The Thumb-style assembly for this is simply to
use the "ne" in an IT conditional, and apply that to all necessary
following instructions.

This way, BOTH the ARM and Thumb instruction sets will honor the "ne"
condition on ldmfd.

//Alex

On Wed, Nov 9, 2011 at 8:12 AM, Carmelo AMOROSO <carmelo.amoroso at st.com> wrote:
> On 09/11/2011 5.28, Alex Pilafian wrote:
>> Hi All,
>>
>> I was trying to cross-compile uClibc for my embedded ARM project
>> today, and I ran into an error here:
>>
>> libc/sysdeps/linux/arm/clone.S:115: Error: thumb conditional instruction
>> should be in IT block -- `ldmnefd sp!,{r4}'
>>
>> I was able to get around this by changing the file clone.S such that
>> the ldmnefd mnemonic is in the IT block (making it a THUMB-only
>> instruction, too).
>>
>> @So, just change this:
>>
>>         ldmnefd sp!, {r4}
>>         IT(t, ne)
>> #if defined(__USE_BX__)
>>         bxne    lr
>> #else
>>         movne   pc, lr
>> #endif
>>
>> @Into this:
>>
>>         IT(tt, ne)
>>         ldmnefd sp!, {r4}
>> #if defined(__USE_BX__)
>>         bxne    lr
>> #else
>>         movne   pc, lr
>> #endif
>>
>> ...and the rest of uClibc will compile normally. Hopefully this saves
>> someone some headache :)
>>
>> //Alex
>> ______
>
> Hi,
> could you please provide a patch, git formatted, please ?
>
> thanks,
> carmelo
>
> _________________________________________
>> uClibc mailing list
>> uClibc at uclibc.org
>> http://lists.busybox.net/mailman/listinfo/uclibc
>>
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc
>


More information about the uClibc mailing list