--- gcc-2/gcc/f/com.c.ORIG	Thu Dec 21 22:09:38 2000
+++ gcc-2/gcc/f/com.c	Thu Dec 21 22:40:42 2000
@@ -244,18 +244,34 @@
    "static") are those that ste.c and such might use (directly
    or by using com macros that reference them in their definitions).  */
 
+#ifndef MACOSX
 static tree short_integer_type_node;
+#else
+tree short_integer_type_node;
+#endif
 tree long_integer_type_node;
 static tree long_long_integer_type_node;
 
+#ifndef MACOSX
 static tree short_unsigned_type_node;
 static tree long_unsigned_type_node;
+#else
+tree short_unsigned_type_node;
+tree long_unsigned_type_node;
+#endif
 static tree long_long_unsigned_type_node;
 
+#ifndef MACOSX
 static tree unsigned_char_type_node;
 static tree signed_char_type_node;
 
 static tree float_type_node;
+#else
+tree unsigned_char_type_node;
+tree signed_char_type_node;
+
+tree float_type_node;
+#endif
 static tree double_type_node;
 static tree complex_float_type_node;
 tree complex_double_type_node;
@@ -17445,3 +17461,193 @@
 -------- (end output file from f2c)
 
 */
+#ifdef MACOSX
+#define C_TYPE_FUNCTION_P(type) \
+  (TREE_CODE (type) == FUNCTION_TYPE)
+
+#define C_TYPE_OBJECT_OR_INCOMPLETE_P(type) \
+  (!C_TYPE_FUNCTION_P (type))
+
+#define C_DECL_ANTICIPATED(exp) DECL_LANG_FLAG_3 ((exp))
+#define c_build_type_variant(TYPE, CONST_P, VOLATILE_P)           \
+  c_build_qualified_type (TYPE,                                   \
+                          ((CONST_P) ? TYPE_QUAL_CONST : 0) |     \
+                          ((VOLATILE_P) ? TYPE_QUAL_VOLATILE : 0))
+
+
+int flag_altivec;
+tree vector_unsigned_char_type_node;
+tree vector_signed_char_type_node;
+tree vector_boolean_char_type_node;
+tree vector_unsigned_short_type_node;
+tree vector_signed_short_type_node; 
+tree vector_boolean_short_type_node;
+tree vector_unsigned_long_type_node;
+tree vector_signed_long_type_node;
+tree vector_boolean_long_type_node;
+tree vector_float_type_node; 
+tree vector_pixel_type_node;
+
+int warn_unknown_pragmas = 0; /* Tri state variable.  */  
+
+int doing_objc_thang;
+extern tree ptr_type_node;
+extern int flag_traditional;
+extern int skip_evaluation;
+
+int flag_allow_single_precision = 0;
+
+/*--------------------------------------------------------------*/
+/* (Modification Record)					*/
+/* 	2000/12/21	K.Fujii		Added for MacOSX 	*/
+/*--------------------------------------------------------------*/
+/*----------------------*/
+/* From c-common.c 	*/
+/*----------------------*/
+
+tree
+maybe_objc_method_name (decl)
+    tree decl;
+{
+#ifdef OBJC_TREE_CODES
+  if (TREE_CODE (decl) == INSTANCE_METHOD_DECL
+      || TREE_CODE (decl) == CLASS_METHOD_DECL)
+    return 1;
+#endif
+  return 0;
+}
+
+void
+binary_op_error (code)
+     enum tree_code code;
+{
+}
+
+
+tree 
+c_build_qualified_type (type, type_quals)
+     tree type;
+     int type_quals;
+{    
+  /* A restrict-qualified pointer type must be a pointer to object or
+     incomplete type.  Note that the use of POINTER_TYPE_P also allows
+     REFERENCE_TYPEs, which is appropriate for C++.  Unfortunately,
+     the C++ front-end also use POINTER_TYPE for pointer-to-member
+     values, so even though it should be illegal to use `restrict'
+     with such an entity we don't flag that here.  Thus, special case
+     code for that case is required in the C++ front-end.  */
+  if ((type_quals & TYPE_QUAL_RESTRICT)
+      && (!POINTER_TYPE_P (type)
+          || !C_TYPE_OBJECT_OR_INCOMPLETE_P (TREE_TYPE (type))))
+    {
+      error ("invalid use of `restrict'");
+      type_quals &= ~TYPE_QUAL_RESTRICT;
+    }
+   
+  if (TREE_CODE (type) == ARRAY_TYPE)
+    return build_array_type (c_build_qualified_type (TREE_TYPE (type),
+                                                     type_quals),
+                             TYPE_DOMAIN (type));
+  return build_qualified_type (type, type_quals);
+}    
+  
+
+
+
+/*----------------------*/
+/* From c-decl.c 	*/
+/*----------------------*/
+  
+tree
+lang_builtin_function (name, type, function_code, library_name)
+     char *name;
+     tree type;
+     enum built_in_function function_code;
+     char *library_name; 
+{
+  tree decl = builtin_function (name, type, function_code, library_name);
+  C_DECL_ANTICIPATED (decl) = 0;
+  return decl;
+}    
+
+int
+lang_comptypes (t1, t2)
+     tree t1, t2;
+{
+  return comptypes (t1, t2);
+}
+
+int
+comptypes (type1, type2)
+     tree type1, type2;
+{
+  return 0; /* Dummy */
+}
+
+tree
+lang_build_type_variant (type, constp, volatilep)
+     tree type;
+     int constp, volatilep;
+{
+  return c_build_type_variant (type, constp, volatilep);
+}
+
+tree 
+lookup_name (name)
+     tree name;
+{         
+  register tree val;
+  if (current_binding_level != global_binding_level
+      && IDENTIFIER_LOCAL_VALUE (name))
+    val = IDENTIFIER_LOCAL_VALUE (name);
+  else  
+    val = IDENTIFIER_GLOBAL_VALUE (name);
+  return val;
+}       
+
+/*----------------------*/
+/* From c-typeck.c 	*/
+/*----------------------*/
+  
+/* Never use */
+tree
+build_binary_op (code, orig_op0, orig_op1, convert_p)
+     enum tree_code code;
+     tree orig_op0, orig_op1;
+     int convert_p;
+{
+  return orig_op0; /* Dummy */
+}    
+
+tree
+default_conversion (exp)
+     tree exp;
+{
+  return exp; /* Dummy */
+}
+
+
+/*----------------------*/
+/* From objc-act.c 	*/
+/*----------------------*/
+  
+
+static tree saved_objc_implementation_context;
+
+void objc_begin_function_pragma() 
+{
+} /* Dummy */
+
+void objc_end_function_pragma()
+{
+} /* Dummy */  
+
+void objc_selector_alias_pragma(objcname, alias)
+     tree objcname;
+     tree alias;
+{
+} /* Dummy */
+
+
+
+#endif
--- gcc-2/gcc/f/config.j.ORIG	Thu May 20 19:51:36 1999
+++ gcc-2/gcc/f/config.j	Thu Dec 21 21:47:15 2000
@@ -22,6 +22,7 @@
 #ifndef MAKING_DEPENDENCIES
 #ifndef _J_f_config
 #define _J_f_config
+#define __GNUFORTRAN__
 #include "config.h"
 #endif
 #endif
--- gcc-2/gcc/f/global.c.ORIG	Thu May 20 19:51:36 1999
+++ gcc-2/gcc/f/global.c	Wed Dec 20 15:57:32 2000
@@ -62,6 +62,7 @@
 static ffenameSpace ffeglobal_filewide_ = NULL;
 static const char *ffeglobal_type_string_[] =
 {
+#ifndef MACOSX
   [FFEGLOBAL_typeNONE] "??",
   [FFEGLOBAL_typeMAIN] "main program",
   [FFEGLOBAL_typeEXT] "external",
@@ -70,6 +71,17 @@
   [FFEGLOBAL_typeBDATA] "block data",
   [FFEGLOBAL_typeCOMMON] "common block",
   [FFEGLOBAL_typeANY] "?any?"
+#else /* MACOSX */
+/* Very Temporary: enumeration should be consistent with that in global.h */
+  "??",
+  "main program",
+  "external",
+  "subroutine",
+  "function",
+  "block data",
+  "common block",
+  "?any?"
+#endif
 };
 #endif
 
--- gcc-2/gcc/c-tree.h.ORIG	Wed May 31 09:33:00 2000
+++ gcc-2/gcc/c-tree.h	Thu Dec 21 21:46:00 2000
@@ -256,6 +256,7 @@
 extern tree complex_float_type_node;
 extern tree complex_double_type_node;
 extern tree complex_long_double_type_node;
+#ifndef __GNUFORTAN__
 extern tree vector_unsigned_char_type_node;
 extern tree vector_signed_char_type_node;
 extern tree vector_boolean_char_type_node;
@@ -267,6 +268,7 @@
 extern tree vector_boolean_long_type_node;
 extern tree vector_float_type_node;
 extern tree vector_pixel_type_node;
+#endif
 extern tree ptr_type_node;
 extern tree ptrdiff_type_node;
 extern tree short_integer_type_node;
@@ -415,7 +417,9 @@
 						       int, char *, int));
 extern void c_expand_return			PROTO((tree));
 extern tree c_expand_start_case                 PROTO((tree));
+#ifndef __GNUFORTRAN__
 extern tree build_vector_constant		PROTO((tree, tree));
+#endif
 
 /* in c-iterate.c */
 extern void init_iterators			PROTO((void));
@@ -467,7 +471,9 @@
 
 /* Nonzero for -faltivec: Enable the SIMD programming model.  */
 
+#ifndef __GNUFORTRAN__
 extern int flag_altivec;
+#endif
 
 /* Nonzero means warn about implicit declarations.  */
 
--- gcc-2/gcc/convert.h.ORIG	Wed May 31 09:33:02 2000
+++ gcc-2/gcc/convert.h	Thu Dec 21 21:46:15 2000
@@ -22,4 +22,6 @@
 extern tree convert_to_pointer PROTO ((tree, tree));
 extern tree convert_to_real PROTO ((tree, tree));
 extern tree convert_to_complex PROTO ((tree, tree));
+#ifndef __GNUFORTRAN__
 extern tree convert_to_vector PROTO ((tree, tree));
+#endif
--- gcc-2/gcc/rtl.h.ORIG	Wed May 31 09:33:15 2000
+++ gcc-2/gcc/rtl.h	Thu Dec 21 21:46:27 2000
@@ -1274,7 +1274,9 @@
 
 extern rtx output_constant_def		PROTO((union tree_node *));
 extern rtx immed_real_const		PROTO((union tree_node *));
+#ifndef __GNUFORTRAN__
 extern rtx immed_vector_const		PROTO((union tree_node *));
+#endif
 extern union tree_node *make_tree	PROTO((union tree_node *, rtx));
 
 /* Define a default value for STORE_FLAG_VALUE.  */
--- gcc-2/Makefile.libiberty.ORIG	Wed May 31 09:32:54 2000
+++ gcc-2/Makefile.libiberty	Wed Dec 20 02:56:03 2000
@@ -19,7 +19,5 @@
 ## might as well make it fat while we're here...
 libiberty.a : $(SOURCES)
 	cc -arch ppc -O2 -c -I $(SRCROOT)/include $(SOURCES)
-	libtool -o libibertyppc.a *.o
-	cc -arch i386 -O2 -c -I $(SRCROOT)/include $(SOURCES)
-	libtool -o libiberty.a *.o libibertyppc.a
+	libtool -o libiberty.a *.o
 
--- gcc-2/build_gcc.ORIG	Wed Aug  9 09:28:09 2000
+++ gcc-2/build_gcc	Wed Dec 20 14:47:16 2000
@@ -59,7 +59,7 @@
 BUILDROOT=$TEMP
 
 # what compilers to build.  On NeXT, we only really need objc and objc++.
-LANGUAGES="objc c++"	# was: "objc objc++ c++"
+LANGUAGES="c objc c++ f77"	# was: "objc objc++ c++"
 
 # flags to use when compiling the compiler
 CFLAGS="-g -dynamic"
--- gcc-2/gcc/config/apple/apple-specs.h.ORIG	Thu Sep 14 04:46:19 2000
+++ gcc-2/gcc/config/apple/apple-specs.h	Sat Dec 23 02:11:06 2000
@@ -366,4 +366,5 @@
    "%{!M:%{!MM:%{!E:%{!S:as %a %Y\
 		    %{@:-o %f%g-%T%O}%{!@: %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%g-%b%O}}\
 		    %{!pipe:%g.s} %A\n }}}}"},
+#include "f/lang-specs.h"
 #endif
