Rockbox

  • Status Closed
  • Percent Complete
    100%
  • 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
Attached to Project: Rockbox
Opened by vitja - 2008-12-17
Last edited by nls - 2009-08-13

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.

Closed by  nls
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

nls commented on 2008-12-17 08:43

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.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing