liborc: error while trying to decode MIPS32 DSP instruction

Daniel Pineiro daniel.pineiro at oceanbluesoftware.co.uk
Fri Nov 25 10:29:34 UTC 2016


Hello,

I am developing for a MIPS board and, when I try to use gstreamer, I get 
a "Illegal instruction" message coming from liborc.

The info I can get from valgrind is:

Error occured while trying to decode MIPS32 DSP instruction.
Your platform probably doesn't support MIPS32 DSP ASE.
vex mips->IR: unhandled instruction bytes: 0xD2 0x30 0x6 0x7C
==764== valgrind: Unrecognised instruction at address 0x7280008.
==764==    at 0x7280008: ??? (in /orcexec.y6jzxO (deleted))
==764==    by 0x5F3CAE0: orc_memset (in /usr/local/lib/liborc-0.4.so.0.25.0)
==764== Your program just tried to execute an instruction that Valgrind
==764== did not recognise.  There are two possible reasons for this.
==764== 1. Your program has a bug and erroneously jumped to a non-code
==764==    location.  If you are running Memcheck and you just saw a
==764==    warning about a bad jump, it's probably your program's fault.
==764== 2. The instruction is legitimate but Valgrind doesn't handle it,
==764==    i.e. it's Valgrind's fault.  If you think this is the case or
==764==    you are not sure, please let us know and we'll try to fix it.
==764== Either way, Valgrind will now raise a SIGILL signal which will
==764== probably kill your program.
==764==
==764== Process terminating with default action of signal 4 (SIGILL)
==764==  Illegal opcode at address 0x7280008
==764==    at 0x7280008: ??? (in /orcexec.y6jzxO (deleted))
==764==    by 0x5F3CAE0: orc_memset (in /usr/local/lib/liborc-0.4.so.0.25.0)
gst-launch-1.0: can't resolve symbol '__libc_freeres'
==764==
==764== HEAP SUMMARY:
==764==     in use at exit: 780,916 bytes in 9,468 blocks
==764==   total heap usage: 43,998 allocs, 34,530 frees, 12,163,887 
bytes allocated
==764==
==764== LEAK SUMMARY:
==764==    definitely lost: 36 bytes in 3 blocks
==764==    indirectly lost: 0 bytes in 0 blocks
==764==      possibly lost: 29,660 bytes in 1,382 blocks
==764==    still reachable: 730,188 bytes in 7,948 blocks
==764==         suppressed: 0 bytes in 0 blocks
==764== Rerun with --leak-check=full to see details of leaked memory
==764==
==764== For counts of detected and suppressed errors, rerun with: -v
==764== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Killed

Is there any way to disable that set of instructions (MIPS32 DSP ASE) 
while building liborc?



More information about the gstreamer-embedded mailing list