Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
up vote 3 down vote accepted

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.

share|improve this answer

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.

share|improve this answer

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

share|improve this answer
I'm using the precompiled Linux binaries from The same page w/ the downlod link includes the system requirements including minimum glibc version, which I meet. – bk. Jul 28 '09 at 20:10
if so, I would give the strace and your /proc/cpuinfo to – 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

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

share|improve this answer

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.