0

I am trying to run an application, which is originally from an ARM powered media center, on a QEMU VM. I also tried running it on my Raspberry Pi.

Unfortunately the application crashes when it tries to execute svc 0x009000b3 which is the OABI way of calling sigsuspend.

There are two, as far as I can tell, relevant instructions prior to the faulty call:

  • MOV R1, #8
  • MOV R0, SP

It is also worth mentioning that I successfully ran the busybox binary from the same media center on both the Qemu VM and the Pi.

I'd be happy for any idea for why the floating point exception could happen and how it can be avoided.

Thanks

jedlyman
  • 1
  • 1
  • Is the kernel configured to be backwards compatible with OABI binaries? – tangrs Jan 12 '14 at 10:09
  • yep.. That busybox binary I mentioned is also an OABI one and works perfectly. – jedlyman Jan 12 '14 at 20:33
  • Hmmmm, it seems strange for a floating point exception to happen for a system call. Are you sure that's where it occurs? – tangrs Jan 13 '14 at 07:32
  • quite sure :( I've tried replacing the syscall opcode with NOP and the exception was gone away, but now I am not sure the program functions as it should. It is also clear from gdb that the syscall is the last opcode to be called before the exception occurs. Is there any additional info I can provide so you can try and guess what is happening? – jedlyman Jan 13 '14 at 20:02
  • Maybe there's another thread that's causing the floating point exception? – tangrs Jan 14 '14 at 08:25

0 Answers0