1

I am trying to run Firefox inside of a Linux chroot. The chroot has a copy of Debian Etch installed via debootstrap. If the chroot is running on a machine w/ a 2.6 kernel, I can run Firefox 2.0, 3.0 and 3.5 all fine. My problem occurs when I move the chroot to a machine running a 2.4.37 kernel, then I can run 2.0 alright, but 3.0 and 3.5 both hang silently with no display and no errors output.

With Firefox 3.5 on the Kernel 2.4 machine, strace -f ./firefox outputs: (only the last few lines before the hang shown)

[pid  8220] set_thread_area({entry_number:-1 -> -1, base_addr:0x41bef140, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = -1 ENOSYS (Function not implemented)
[pid  8220] modify_ldt(1, {entry_number:0, base_addr:0x41bef140, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = 0
[pid  8220] munmap(0x40019000, 11144)   = 0
[pid  8220] getpid()                    = 8220
[pid  8220] rt_sigaction(SIGRTMIN, {0x400241e0, [], SA_RESTORER, 0x416f58f8}, NULL, 8) =     0
[pid  8220] rt_sigaction(SIGRT_1, {0x40023cc0, [RTMIN], SA_RESTORER, 0x416f58f8}, NULL, 8) = 0
[pid  8220] rt_sigaction(SIGRT_2, {0x40023500, [], SA_RESTORER, 0x416f58f8}, NULL, 8) = 0
[pid  8220] rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
[pid  8220] rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
[pid  8220] open("/proc/cpuinfo", O_RDONLY) = 3
[pid  8220] read(3, "processor\t: 0\nvendor_id\t: Genuin"..., 1024) = 422
[pid  8220] read(3, "", 1024)           = 0
[pid  8220] close(3)                    = 0
[pid  8220] readlink("/etc/malloc.conf", 0xbfffe47b, 4096) = -1 ENOENT (No such file or     directory)
[pid  8220] rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
[pid  8220] rt_sigsuspend([]

The set_thread_area call failing with "Function Not Implemented" along with the fact that since I'm runninng in a chroot, only the kernel is different between my two running environments, leads me to believe that Firefox does not run on the 2.4 kernel. However, Mozilla lists a long list of requirements for running Firefox, and 2.6 kernel is not one of them. Can anyone suggest a workaround for how I can get this running?

bk.
  • 768
  • 1
  • 4
  • 13

5 Answers5

3

The first thing I'd try is to actually compile it on the 2.4-kernel machine, so your compiler doesn't try to use the 2.6-kernel ABI. If you can successfully compile under 2.4, it'll probably work fine. If not, there's probably a hidden dependency somewhere.

kquinn
  • 257
  • 1
  • 5
2

While this function is indeed not implemented in 2.4, it's probably not called from Firefox itself. I'm guessing that by running -- in 2.4 -- a binary compiled and linked against 2.6, you call a library that is incompatible. Since Firefox is portable stuff, this is either ifdef'ed or part of a separate library.

Notmyfault
  • 121
  • 1
  • 8
1

are you downloading binaries, or compiling from source? for binary, are you sure the version of glibc matches what you have installed?

Devnull
  • 951
  • 1
  • 7
  • 23
  • I'm using the precompiled Linux binaries from mozilla.com. The same page w/ the downlod link includes the system requirements including minimum glibc version, which I meet. http://www.mozilla.com/en-US/firefox/system-requirements.html – bk. Jul 28 '09 at 20:10
  • if so, I would give the strace and your /proc/cpuinfo to https://bugzilla.mozilla.org/ – Notmyfault Jul 28 '09 at 20:15
  • then have you tried compiling from source or finding a distro repository with packaged versions? 3.0 should definitely be available for anything at this point, while 3.5 probably isnt. – Devnull Jul 28 '09 at 20:22
1

You need to check glibc (not glib) versions. Just run /lib/libc.so.6 and post results

osgx
  • 603
  • 12
  • 26
0

I really doubt it .. A LOT changed in Linux networking (as far as what the kernel provides) from 2.4 to 2.6, and even from 2.6.20 to 2.6.24 +. Not just trivial changes, entire structures were re-named totally, some vanished completely, others had their members re-arranged.

Its likely going to need a great deal of fiddling before you can even get it to build.

Tim Post
  • 1,525
  • 13
  • 25