Comment 25 for bug 490792

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

Binary package hint: xulrunner-1.9.1

The problem here is that the nanojit output tries to call functions in xulrunner using plain BL instructions, causing the CPU to interpret the called (Thumb-2) code as ARM... which doesn't work.

The symptoms are random SIGILLs and segfaults in firefox-3.5.

Apparently, the required support has been implemented in mozilla-central for the last few months, but unfortunately there is not a straightforward patch against the current Ubuntu source to fix this :(

Possible workarounds:
 1) Update to the firefox 3.6 / mozilla 1.9.2 branch on mozilla-central (http://hg.mozilla.org/releases/mozilla-1.9.2/ ... it's still in beta though, and there are unresolved issues about openjdk java plugin support --- see https://blueprints.launchpad.net/ubuntu/+spec/desktop-lucid-new-firefox-support-model)
 2) Build all of xulrunner with -marm (firefox may also need -marm --- it depends on whether the nanojit output might call absolutely anything or just support functions in xulrunner)

The most recent relevant commit on mozilla-central is http://hg.mozilla.org/mozilla-central/rev/f8ce8b4d6ce1
It looks like the relevant changes weren't on the mozilla 1.9.1 / firefox 3.5 branch.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu lucid (development branch)
Release: 10.04
Codename: lucid

$ apt-cache policy xulrunner-1.9.1 firefox-3.5
xulrunner-1.9.1:
  Installed: 1.9.1.5+nobinonly-0ubuntu2
  Candidate: 1.9.1.5+nobinonly-0ubuntu2
  Version table:
 *** 1.9.1.5+nobinonly-0ubuntu2 0
        500 http://ports.ubuntu.com/main Packages
        100 /var/lib/dpkg/status
firefox-3.5:
  Installed: 3.5.5+nobinonly-0ubuntu2
  Candidate: 3.5.5+nobinonly-0ubuntu2
  Version table:
 *** 3.5.5+nobinonly-0ubuntu2 0
        500 http://ports.ubuntu.com lucid/main Packages
        100 /var/lib/dpkg/status