Rockbox

Tasklist

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
Task Type Bugs
Category Codecs
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

After 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
Comment by Nils Wallménius (nls) - Wednesday, 17 December 2008, 08:43 GMT
Strange...
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."
Comment by Paul Louden (Llorean) - Wednesday, 17 December 2008, 12:47 GMT
Is this a bug that should be on the tracker? I mean, is it a "bug" if Rockbox doesn't compile for a target it's not yet claiming to compile for? Shouldn't this be the kind of thing worked out by the porters?
Comment by Dave Chapman (linuxstb) - Friday, 29 May 2009, 09:02 GMT
I disagree with closing this task - even though it was exposed by a new port, it's still a bug in existing code, and is not specific to that port.

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.

Loading...