It looks like the underlying cause may be a bug in gas, which causes the
wrong alignment to be set for code sections -- upstream binutils bug
raised and cross-referenced from this bug.

When building firefox for Thumb, .text contains a mixture of Thumb code
and ARM code (the ARM code comes from the */arm/*.asm files).  The ARM
code sections don't declare an appropriate alignment requirement in the
objects output from the assembler, and end up in the final link aligned
on an odd halfword offset.

Disassembling /usr/lib/firefox-5.0/libxul.so shows the boundary between
compiler-generated Thumb code and the hand-written ARM assembler, with
the ARM instructions on an invalid, non-word-aligned offset:

  61e6f2:       9201            str     r2, [sp, #4]
  61e6f4:       6a5a            ldr     r2, [r3, #36]   ; 0x24
  61e6f6:       695b            ldr     r3, [r3, #20]
  61e6f8:       f42f efd0       blx     24e69c <_init+0x5da4>
  61e6fc:       bd0e            pop     {r1, r2, r3, pc}

0061e6fe <vp8_decode_mb_tokens_v6>:
  61e6fe:       e92d4ff0        push    {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  61e702:       e24dd040        sub     sp, sp, #64     ; 0x40
  61e706:       e1a07001        mov     r7, r1
  61e70a:       e1a09000        mov     r9, r0

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/789198

Title:
  Firefox crashes when attempting to play webm video on ARM with Thumb2
  enabled

To manage notifications about this bug go to:
https://bugs.launchpad.net/binutils/+bug/789198/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to