FS#9657 - Compilation error in libdemac on arm946cc
Attached to Project:
Rockbox
Opened by Vitja Makarov (vitja) - Wednesday, 17 December 2008, 06:55 GMT
Last edited by Nils Wallménius (nls) - Thursday, 13 August 2009, 13:54 GMT
Opened by Vitja Makarov (vitja) - Wednesday, 17 December 2008, 06:55 GMT
Last edited by Nils Wallménius (nls) - Thursday, 13 August 2009, 13:54 GMT
|
DetailsAfter recent update I found this bug for my target i7:
CC apps/codecs/demac/libdemac/predictor-arm.S /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S: Assembler messages: /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:127: Error: selected processor does not support `strd r10,[r14,#200-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:144: Error: selected processor does not support `strd r10,[r14,#72-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:152: Error: selected processor does not support `ldrd r6,[r12,#12]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:175: Error: selected processor does not support `strd r10,[r14,#168-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:193: Error: selected processor does not support `strd r10,[r14,#40-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:313: Error: selected processor does not support `strd r10,[r14,#136-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:330: Error: selected processor does not support `strd r10,[r14,#56-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:338: Error: selected processor does not support `ldrd r6,[r12,#20]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:361: Error: selected processor does not support `strd r10,[r14,#104-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:379: Error: selected processor does not support `strd r10,[r14,#20-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:571: Error: selected processor does not support `strd r10,[r14,#200-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:588: Error: selected processor does not support `strd r10,[r14,#72-4]' /home/vitja/work/rockbox-trunk/apps/codecs/demac/libdemac/predictor-arm.S:613: Error: selected processor does not support `ldrd r2,[r14,#72-12]' make: *** [/home/vitja/work/rockbox-trunk/i7-normal/apps/codecs/demac/libdemac/predictor-arm.o] Ошибка 1 Seems that arm946cc is missing some instructions. vitja. |
This task depends upon
Closed by Nils Wallménius (nls)
Thursday, 13 August 2009, 13:54 GMT
Reason for closing: Fixed
Additional comments about closing: amiconn fixed this in r21916
Thursday, 13 August 2009, 13:54 GMT
Reason for closing: Fixed
Additional comments about closing: amiconn fixed this in r21916
arm946cc in configure specifies -mcpu=arm9e which should include the whole arm9e family which according to this page http://www.arm.com/products/CPUs/families/ARM9EFamily.html
are all armv5te based, and strd/ldrd were first introduced in armv5t.
Trying to select -mcpu=arm946e-s (as that is an option in the gcc manual) doesn't work either, just gives an "unrecognized option" error :/
Building with -march=armv5te should work but it errors out on incompatibilities with the libs so you will likely need to change the
multilib options when building gcc for this.
Hmm, the arm architeture reference mentions this note under the list of changes from v4t to v5t:
"Some early implementations of the E variant omitted the LDRD, STRD, MCRR, MRCC and PLD instructions. These
are designated as conforming to the ExP variant, and the variant is defined for legacy reasons only."
As Nils found, the issue appears to be that Rockbox treats all armv5 variants equally, where there is one variant (ARMv5TExP) which doesn't have the ldrd/strd instructions. So we need more a finely-grained way to define ARM variants.