I took another stab at directly cross-compiling (not via distcc) using toolwhip. My previous attempt failed, but not due to libffi at all. The problem there was that I had the Mac ld in my path before the host ld. After fixing that and a few mozilla build system issues and making sure the build system can find the right SDK and the right ar
and such I now have a cross-compile setup working. No make package
yet, since that requires the dmg-creation utility which I don't have on the Linux machine. No --enable-breakpad
support yet due to bug 543111. --enable-shark
needs headers I don't have on that machine yet, so I'd need to sort that out. But for basic bisecting, this works.
Just so I can find it later, the working mozconfig file I'm using is something along these lines:
mk_add_options MOZ_MAKE_FLAGS="-s -j10" export MOZ_MAKE_FLAGS="-s -j10" mk_add_options CC="ccache /Developer/usr/bin/gcc-4.2" export CC="ccache /Developer/usr/bin/gcc-4.2" mk_add_options CXX="ccache /Developer/usr/bin/g++-4.2" export CXX="ccache /Developer/usr/bin/g++-4.2" mk_add_options CROSS_LIB_PATH="/Developer/usr/lib:/Developer/SDKs/MacOSX10.5.sdk/usr/lib" export CROSS_LIB_PATH="/Developer/usr/lib:/Developer/SDKs/MacOSX10.5.sdk/usr/lib" mk_add_options CROSS_COMPILE="1" export CROSS_COMPILE="1" export LD=/Developer/usr/bin/ld export AR=/Developer/usr/bin/ar mk_add_options PATH="/home/bzbarsky/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/Developer/usr/bin:/Developer/SDKs/MacOSX10.5.sdk/usr/bin" export PATH="/home/bzbarsky/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/Developer/usr/bin:/Developer/SDKs/MacOSX10.5.sdk/usr/bin" ac_add_options --target=i686-apple-darwin9 ac_add_options --enable-application=browser ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.5.sdk ac_add_options --disable-crashreporter ac_add_options --disable-optimize ac_add_options --enable-debug ac_add_options --disable-tests
Various other --enable-whatever are hanging out in there too, but the above are sort of the minimal set one needs at the moment.
Posted by bzbarsky at January 29, 2010 5:25 PM | TrackBack