Tiger Build Notes
NOTE: these instructions are for developers who need to perform full Chandler builds, including the "external/" and "internal/" directories.
Chandler builds successfully on Tiger, but you will probably need to do a bit of build reconfiguration work beforehand. Read on...
For Tiger on Intel the version is 4.0.2 but for Tiger on PPC replace the version number referenced below with 3.4.4
Updating to gcc 4.0.2
Since Apple does not ship gcj with any of their dev tools, you have to build it yourself or pull the one we have built.
We updated to gcc 4.0.2 because it:
- worked and
- was the most recent version that worked with gcj
To pull the pre-built gcc 4.0.2:
cd external/
export BUILD_ROOT=`pwd`
make compilers
Our build system will then download the gcc 4.0.2 tarball (Note: it is around 55 meg) and install it in external/gcc-4.0.2
Once there the build system will locate it as long as you do
not have GCJ_HOME defined.
Building your own gcc 4.0.2
Note: These instructions were lifted from the excellent INSTALL docs in Projects.PyLucene -- thanks Andi!
You may download a gcc source tarball from one of the gcc mirror sites
Note: the name of the directory (gcc-4.0.2) isn't important below - just use something unique so you will recognize it as
your build and not what Apple provides
mkdir gcc-4.0.2
cd gcc-4.0.2
bunzip2 -c ../gcc-4.0.2.tar.bz2 | tar -xvf -
Now you need to modify one of the source files by adding
#define LARGE_CONFIG
to gcc-4.0.2/boehm-gc/include/private/gc_priv.h
mkdir build
cd build
../gcc-4.0.2/configure --enable-threads=posix --prefix=/usr/local/gcc-4.0.2 --enable-languages=c,c++,java
make bootstrap
sudo make install
Notes:
- The build will take anywhere from an hour to around four hours depending how much of a hardware geek you are
- The path given to --prefix needs to be absolute.
- You don't have to install to /usr/local - it's just a suggestion - where ever you do install make sure you update GCJ_HOME to point to it
- Do not supersede or overwrite your original Mac OS X Tiger gcc installation with the compiler you just built!