- Status Closed
- Percent Complete
- Task Type Bugs
- Category Codecs
- Assigned To No-one
- Operating System All players
- Severity Low
- Priority Very Low
- Reported Version Daily build (which?)
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#9657 - Compilation error in libdemac on arm946cc
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.
2009-08-13 13:54
Reason for closing: Fixed
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
amiconn fixed this in r21916
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
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."
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?
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.