Which GCC version should I compile to compile the latest GPC snapshot (the only downloadable file at the time being)?
3.2.x, 3.3.x or 3.4.3 should all work well. If you need to download one anyway, I suggest 3.4.3. (This is the source GCC you need for building GPC. The installed GCC compiler versions shouldn't matter much, just use the one you have installed.)
I posted instructions for getting gpc to compile from scratch on Mac OS X 10.4 recently (I'll repeat them below). The process should be similar for any unix system, although you may not need the patches and tweaks described in my docs).
Enjoy, Peter.
Compiling GPC from scratch
0 - Create a build directory 1 - Install bison version 2.0 2 - Install flex version 2.5.27 3 - Install sed version 4.1.4 4 - Install help2man version 1.35.1 5 - Download gcc version 3.4.3 6 - Download gpc-20050331 7 - Configure gcc/gpc 8 - Patch gcc for Mac OS X 9 - Build gcc 10 - Install gp 11 - Setup some links
STEP 0 - Create a build directory
cd mkdir gpc-build cd gpc-build
STEP 1 - Install bison version 2.0
curl -s -S -O http://ftp.gnu.org/gnu/bison/bison-2.0.tar.gz tar zxf bison-2.0.tar.gz cd bison-2.0 ./configure make sudo make install cd ..
STEP 2 - Install flex version 2.5.31
curl -s -S -O http://easynews.dl.sourceforge.net/sourceforge/lex/flex-2.5.27.tar.gz tar zxf flex-2.5.27.tar.gz cd flex-2.5.27 ./configure make sudo make install cd ..
STEP 3 - Install sed version 4.1.4
curl -s -S -O http://ftp.gnu.org/gnu/sed/sed-4.1.4.tar.gz tar zxf sed-4.1.4.tar.gz cd sed-4.1.4 ./configure make sudo make install cd ..
STEP 4 - Install help2man version 1.35.1
curl -s -S -O ftp://ftp.gnu.org/gnu/help2man/help2man-1.35.1.tar.gz tar zxf help2man-1.35.1.tar.gz cd help2man-1.35.1 ./configure --enable-nls=no make sudo make install cd ..
STEP 5 - Download gcc version 3.4.3
curl -s -S -O ftp://ftp.gnu.org/gnu/gcc/gcc-3.4.3/gcc-core-3.4.3.tar.bz2 bunzip2 gcc-core-3.4.3.tar.bz2 tar xf gcc-core-3.4.3.tar
STEP 6 - Download gpc-20050331
curl -s -S -O http://www.g-n-u.de/gpc/gpc-20050331.tar.bz2 bunzip2 gpc-20050331.tar.bz2 tar xf gpc-20050331.tar mv p gcc-3.4.3/gcc
STEP 7 - Configure gcc/gpc
mkdir build cd build ../gcc-3.4.3/configure --enable-languages=pascal,c --enable-threads=posix --prefix=/Developer/Pascal/gpc-20050331
STEP 8 - Patch gcc for Mac OS X
gcc 3.4.3 has a problem with Mac OS X 10.4, so apply the patch from http://cvs.opendarwin.org/index.cgi/dports/lang/gcc34/files/patch-darwin.h?rev=1.3&content-type=text/x-cvsweb-markup, execute the patch command, paste in the following lines, then press control D (^D)
patch -p0 --ignore-whitespace --- ../gcc-3.4.3/gcc/config/darwin.h.sav 2005-05-18 13:56:37.000000000 -0400 +++ ../gcc-3.4.3/gcc/config/darwin.h 2005-05-18 13:57:48.000000000 -0400 @@ -275,7 +275,8 @@ /* Machine dependent libraries. */
#undef LIB_SPEC -#define LIB_SPEC "%{!static:-lSystem}" +#define LIB_SPEC "%{!static:-lSystemStubs -lSystem}" +
/* We specify crt0.o as -lcrt0.o so that ld will search the library path. */ ^D
STEP 9 - Build gcc
make EXTRA_PFLAGS=--longjmp-all-nonlocal-labels STAGE1_CFLAGS='-g -DHAVE_DESIGNATED_INITIALIZERS=0' bootstrap sudo make install cd ..
STEP 10 - Install gp
gp does not handle capital letters in unit names, even on case insensitive file systems. The patch resolves that issue. Remember that ^D means press control-D.
curl -s -S -O http://fjf.gnu.de/misc/gp.tar.bz2 bunzip2 gp.tar.tar.bz2 cd gp-0.60 ./configure --prefix=/Developer/Pascal/gpc-20050331 patch -p1 --ignore-whitespace --- gp-0.60/gp.pas 2005-06-06 04:31:51.000000000 +0800 +++ gp-0.60-mine/gp.pas 2005-06-25 11:21:53.000000000 +0800 @@ -708,7 +710,7 @@ if FileName <> '' then UnitNameMatch := (Dep.SrcBaseNameExt = FileName) or (Dep.SrcBaseName = FileName) else - UnitNameMatch := Dep.SrcBaseName = InterfaceName + UnitNameMatch := LoCaseStr( Dep.SrcBaseName ) = LoCaseStr( InterfaceName ); end;
function NewUsesElement (const InterfaceName, FileName: String; Next: PUnitList) = p: PUnitList; ^D make sudo make install cd ..
STEP 11 - Setup some links
sudo ln -s -f /Developer/Pascal/gpc-20050331/bin/gpc /usr/bin/gpc sudo ln -s -f /Developer/Pascal/gpc-20050331/bin/gcc /usr/bin/gpcgcc sudo ln -s -f -h /Developer/Pascal/gpc-20050331/lib/gcc/powerpc-apple-darwin7/3.4.3/ /Developer/Pascal/gpclibs sudo ln -s -f /Developer/Pascal/gpc-20050331/bin/gpidump /usr/bin/gpidump sudo ln -s -f /Developer/Pascal/gpc-20050331/bin/binobj /usr/bin/gpcbinobj sudo ln -s -f /Developer/Pascal/gpc-20050331/bin/gpc-run /usr/bin/gpc-run sudo ln -s -f /Developer/Pascal/gpc-20050331/bin/gp /usr/bin/gp