I have found a much simpler way to build gpc (with gcc-3.2.1) on Mac OS X, than what I did before. A summary is given below. I will put full instructions, together with binaries, on my website, somewhere next week (I hope).
Regards,
Adriaan van Os
---------
The following has been tested on Mac OS X.2.3 out-of-the-box. It might also work on Mac OS X.2 or X.2.2 (but I didn't test).
(1) Get the gpc-20021128 and gcc-core-3.2.1 sources
(2) Remove the space after "-D" in p/Make-lang.in (Frank Heckenbach)
$(CC) -o $@ -c $(ALL_GPC_FLAGS) -DRTS_VERSION_CHECK=""__GPC_RTS_VERSION_`cat $(RTSSRCDIR)/rts-version`__"" $<
(3) Patch p/parse.y (Frank Heckenbach)
Try this (patch may need manual applying, since I've changed some other things in my copy meanwhile).
*** p/parse.y.orig Fri Jan 3 09:44:04 2003 --- p/parse.y Fri Jan 3 09:49:25 2003 *************** *** 792,799 **** tree name = get_module_destructor_name (current_module); const char *save_filename = start_dummy_file_name (); context = build_nt (CALL_EXPR, name, no_parameters (), NULL_TREE); ! if (!start_function (chainon (build_tree_list (NULL_TREE, static_id), ! build_tree_list (NULL_TREE, void_type_node)), context, NULL_TREE, 0)) YYERROR1; store_parm_decls (); --- 792,798 ---- tree name = get_module_destructor_name (current_module); const char *save_filename = start_dummy_file_name (); context = build_nt (CALL_EXPR, name, no_parameters (), NULL_TREE); ! if (!start_function (build_tree_list (NULL_TREE, void_type_node), context, NULL_TREE, 0)) YYERROR1; store_parm_decls ();
(4) Patch stddef.h (Andreas Tobler).
The patch can be found at http://gcc.gnu.org/ml/gcc/2002-08/msg01681.html.
--- gcc-04072002/gcc/ginclude/stddef.h Wed Jan 9 13:28:06 2002 +++ gccsrc/gcc/gcc/ginclude/stddef.h Thu Jul 4 18:37:27 2002 @@ -242,6 +242,7 @@ #ifndef _WCHAR_T_ #ifndef _BSD_WCHAR_T_ #ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */ +#ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */ #ifndef _WCHAR_T_DEFINED_ #ifndef _WCHAR_T_DEFINED #ifndef _WCHAR_T_H @@ -278,6 +279,7 @@ #ifdef _BSD_RUNE_T_ #if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) typedef _BSD_RUNE_T_ rune_t; +#define _BSD_RUNE_T_DEFINED_ #define _BSD_WCHAR_T_DEFINED_ #if defined (__FreeBSD__) /* Why is this file so hard to maintain properly? In constrast to @@ -295,6 +297,7 @@ #endif #ifndef __cplusplus typedef __WCHAR_TYPE__ wchar_t; +#endif #endif #endif #endif
(5) Create a build directory and run configure with the right options (as described in the gpc docs)
(6) Now, type "make bootstrap" instead of "make". This will build a gcc-3.2.1 and a gpc-3.2.1 compiler. The first stage of the bootstrap uses the gcc compiler that came with Mac OS X.2.3.