Firefox 3

Plamo Linux 4.02 で Firefox 3 を使おうとしたら、

error while loading shared libraries: libjemalloc.so: cannot handle TLS data.

というエラーが出て動かない。http://mozilla.jp/firefox/system-requirements を見たら、最低限必要なライブラリに、GTK+ 2.10 以上、GLib 2.12 以上、Pango 1.14 以上、X.Org 1.0 以上と書いてある。GTK+ と GLib と Pango は前に自分でバージョンを上げたので入っているけど、X は XFree86 4.4.0 のままなのでそれが原因なのだろうか。(Google で検索してざっと見た感じでは違ってそうだけど。)(google:jemalloc TLS] [google:thread local storage Linux んー、kernel のバージョンを上げる必要があるのかな? システム要件にそういうことは書いておいて欲しいな。)
しょうがないので自分でコンパイルする。~/.mozconfig は以下のようにした。

# sh
# Build configuration script
#
# See http://www.mozilla.org/build/unix.html for build instructions.
#

# Options for client.mk.
mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
mk_add_options MOZ_CO_LOCALES="ja"
mk_add_options LOCALES_CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/l10n

# Options for 'configure' (same as command-line options).
ac_add_options --enable-application=browser
ac_add_options --enable-ui-locale=ja
ac_add_options --enable-svg
ac_add_options --disable-tests
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --enable-strip
ac_add_options --disable-dbus
ac_add_options --disable-jemalloc

"ac_add_options --disable-dbus" は、"configure: error: Library requirements (dbus-glib-1 >= 0.60) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." というエラーが出るので、"ac_add_options --disable-jemalloc" は

c++ -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-long-long -pedantic -fno-strict-aliasing -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O2 -fPIC -shared -Wl,-z,defs -Wl,-h,libjemalloc.so -o libjemalloc.so  jemalloc.o     -lpthread   -Wl,-rpath-link,../../dist/bin   -ldl -lm    
jemalloc.o(.text+0x34e2): In function `choose_arena_hard':
: undefined reference to `___tls_get_addr'
jemalloc.o(.text+0x3541): In function `choose_arena_hard':
: undefined reference to `___tls_get_addr'
jemalloc.o(.text+0x3daa): In function `.L1433':
: undefined reference to `___tls_get_addr'
jemalloc.o(.text+0x40d7): In function `malloc':
: undefined reference to `___tls_get_addr'
jemalloc.o(.text+0x449e): In function `memalign':
: undefined reference to `___tls_get_addr'
jemalloc.o(.text+0x45c6): more undefined references to `___tls_get_addr' follow
collect2: ld はステータス 1 で終了しました

というエラーが出るのでオプションにつけてみた。
コンパイル手順

tar jxvf firefox-3.0-source.tar.bz2
cd mozilla
make -f client.mk checkout
make -f client.mk build
make -C obj-i686-pc-linux-gnu/browser/installer/
cp obj-i686-pc-linux-gnu/dist/firefox-3.0.ja.linux-i686.tar.gz ..