Hi, I've got problems with all mozilla family packages (mozilla, thunderbird, firefox, gecko-sdk, enigmail) with their latest ~x86 versions in portage (for mozilla this would be www-client/mozilla-1.7.13, or mozilla-firefox-1.5.0.3). I'm compiling on amd64 in a 32bit chroot. Now mozilla (and friends) use the following in their configure.in: OS_TARGET=`uname -s` OS_ARCH=`uname -s | sed -e 's|/|_|g'` OS_RELEASE=`uname -r` OS_TEST=`uname -m` This will set OS_TEST to x86_64 (because I've got a 64 bit kernel) instead of i686 which it should be set to. -> All packages fail to build with the following error: ------------ gmake[6]: Entering directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom/reflect/xptcall/src/md' gmake[7]: Entering directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom/reflect/xptcall/src/md/unix' xptcinvoke_x86_64_linux.cpp i686-pc-linux-gnu-g++ -o xptcinvoke_x86_64_linux.o -c -DOSTYPE=\"Linux2.6\" -DOSARCH=\"Linux\" -DEXPORT_XPTC_API -I../../../../../../dist/include/xpcom -I../../../../../../dist/include -I/var/tmp/portage/mozilla-1.7.13/work/mozilla/dist/include/nspr -I./../.. -fPIC -DGENTOO_NSPLUGINS_DIR=\"/usr/lib/nsplugins\" -DGENTOO_NSBROWSER_PLUGINS_DIR=\"/usr/lib/nsbrowser/plugins\" -fno-rtti -fno-handle-exceptions -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pipe -march=athlon-xp -ggdb -Wno-deprecated -Wno-return-type -w -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -ffunction-sections -O2 -DGENTOO_NSPLUGINS_DIR=\"/usr/lib/nsplugins\" -DGENTOO_NSBROWSER_PLUGINS_DIR=\"/usr/lib/nsbrowser/plugins\" -DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h -Wp,-MD,.deps/xptcinvoke_x86_64_linux.pp xptcinvoke_x86_64_linux.cpp xptcinvoke_x86_64_linux.cpp: In function `nsresult XPTC_InvokeByIndex(nsISupports*, PRUint32, PRUint32, nsXPTCVariant*)': xptcinvoke_x86_64_linux.cpp:153: error: register specified for 'd0' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:153: error: register name given for non-register variable 'd0' xptcinvoke_x86_64_linux.cpp:154: error: register specified for 'd1' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:154: error: register name given for non-register variable 'd1' xptcinvoke_x86_64_linux.cpp:155: error: register specified for 'd2' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:155: error: register name given for non-register variable 'd2' xptcinvoke_x86_64_linux.cpp:156: error: register specified for 'd3' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:156: error: register name given for non-register variable 'd3' xptcinvoke_x86_64_linux.cpp:157: error: register specified for 'd4' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:157: error: register name given for non-register variable 'd4' xptcinvoke_x86_64_linux.cpp:158: error: register specified for 'd5' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:158: error: register name given for non-register variable 'd5' xptcinvoke_x86_64_linux.cpp:159: error: register specified for 'd6' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:159: error: register name given for non-register variable 'd6' xptcinvoke_x86_64_linux.cpp:160: error: register specified for 'd7' isn't suitable for data type xptcinvoke_x86_64_linux.cpp:160: error: register name given for non-register variable 'd7' gmake[7]: *** [xptcinvoke_x86_64_linux.o] Error 1 gmake[7]: Leaving directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom/reflect/xptcall/src/md/unix' gmake[6]: *** [libs] Error 2 gmake[6]: Leaving directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom/reflect/xptcall/src/md' gmake[5]: *** [libs] Error 2 gmake[5]: Leaving directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom/reflect/xptcall/src' gmake[4]: *** [libs] Error 2 gmake[4]: Leaving directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom/reflect/xptcall' gmake[3]: *** [libs] Error 2 gmake[3]: Leaving directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom/reflect' gmake[2]: *** [libs] Error 2 gmake[2]: Leaving directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla/xpcom' gmake[1]: *** [tier_2] Error 2 gmake[1]: Leaving directory `/var/tmp/portage/mozilla-1.7.13/work/mozilla' make: *** [default] Error 2 ------------------------------- A quick and dirty hack would be to simply hardcode a value in configure.in if uname -m is x86_64 but CHOST is set to some i686 value.
This is why you should use the linux32 command from sys-apps/setarch. It's all documented in the chroot howto: http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=2
You're right, I forgot to do that. Still, mozilla should not use uname but honor CHOST.