Frank Heckenbach wrote:
Bison (building GPC)
Bison version 2.0 has been released. It can be obtained at ftp://ftp.gnu.org/gnu/bison/bison-2.0.tar.gz. This is now the recommended version for all GPC compilations. Fortunately, we now don't depend on changing alpha/beta versions of bison anymore. Bison is required when building a minimal distribution of GPC (which now doesn't include the Bison generated files anymore, as it did temporarily); when building a full source distribution and not modifying the bison input files (*.y), bison is not strictly needed, but in case of doubt, it can't hurt to install the new bison version.
I am adding a few notes about building on Mac OS X.
The following tools may be needed:
- bison 2.0 a too old version is installed with XCode or OS X ftp://ftp.gnu.org/gnu/bison/bison-2.0.tar.gz
- sed 4.0.x a too old version is installed with XCode or OS X (I use 4.0.5, but I assume later versions work also) ftp://ftp.gnu.org/gnu/sed/
- flex 2.5.27 a too old version is installed with XCode or OS X http://sourceforge.net/project/showfiles.php?group_id=72099
- help2man 1.35 not installed with XCode or OS X ftp://ftp.gnu.org/gnu/help2man/help2man-1.35.1.tar.gz
Configure these tools with --prefix=/usr, configure help2man with --prefix=/usr --enable-nls=no
There is a bug in Mac OS X that causes problems when configuring flex and other tools (see e.g.<http://lists.gnu.org/archive/html/bug-coreutils/2004-08/ msg00039.html>). The system call sysctl ((int[]) {CTL_HW, HW_MACHINE_ARCH}, 2, buffer, &bufsize, 0, 0) returns a negative number, which causes the coreutils command "uname -p" to report "unknown". This confuses config.guess.
To solve the flex configure problem, apply the following patch to the flex 2.5.27 sources:
--- config.guess.orig Fri Feb 18 21:22:32 2005 +++ config.guess Fri Feb 18 21:25:28 2005 @@ -1098,7 +1098,7 @@ EOF echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} + echo powerpc-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p`
WIth the right tools in place, build the gpc compiler with "make bootstrap" instead of "make". This is necessary because of peculiarities of the apple-gcc system compiler. The alternative is to bootstrap an fsf-gcc compiler on your system first and then use that fsf-gcc compiler for successive builds of gpc (and other gnu packages). Then, successive builds will be faster, because a bootstrap is not needed.
Regards,
Adriaan van Os