--- 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 --- gcc-2/gcc/f/com.c.ORIG Sun Jan 7 17:45:49 2001 +++ gcc-2/gcc/f/com.c Wed Jan 10 17:10:56 2001 @@ -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,201 @@ -------- (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 = 0; +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; +{ +/* this can be dummy: declared extern in c-tree.h */ +} + + +/* this can also be dummy, though implemented: declared extern in c-tree.h */ +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 */ +/*----------------------*/ + +/* declared in tree.h but otherwise unused */ +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; +} + +/* declared extern in c-tree.h but otherwise unused */ +int +comptypes (type1, type2) + tree type1, type2; +{ + return 0; /* Dummy */ +} + +/* declared in tree.h but otherwise unused */ +int +lang_comptypes (t1, t2) + tree t1, t2; +{ + return comptypes (t1, t2); +} + +/* declared extern in tree.h but otherwise unused */ +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 */ +/*----------------------*/ + +/* declared extern in c-tree.h but otherwise unused */ +tree +default_conversion (exp) + tree exp; +{ + return exp; /* Dummy */ +} + +tree +build_binary_op (code, orig_op0, orig_op1, convert_p) + enum tree_code code; + tree orig_op0, orig_op1; + int convert_p; +{ + /* This should not be dummy: used in expr.o */ + return ffecom_2(code, integer_type_node, orig_op0, orig_op1); +} + + +/*----------------------*/ +/* 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/config/apple/openstep.h.ORIG Thu Sep 14 04:52:38 2000 +++ gcc-2/gcc/config/apple/openstep.h Sun Jan 7 17:43:36 2001 @@ -98,7 +98,7 @@ #ifdef OPENSTEP #define STANDARD_EXEC_PREFIX "/lib/" #else -#define STANDARD_EXEC_PREFIX "/usr/libexec/" +#define STANDARD_EXEC_PREFIX "/usr/local/libexec/" #endif /* Name of the command that invokes the compiler - used in g++.c. */ @@ -408,9 +408,9 @@ %{r} %{s} %{Si}%{Sn} %{T*} %{t} %{u*} %{X} %{x} %{z} %{y*} \ %{!A:%{!nostdlib:%{!nostartfiles:%S}}} \ %{L*} %o %{!nostdlib:%G %L %{!A:%E}} \ - %{.C:\\| /usr/bin/c++filt}%{.M:\\| /usr/bin/c++filt} \ - %{.cc:\\| /usr/bin/c++filt} \ - %{!.C:%{!.M:%{!.cc:%{ObjC++:\\| /usr/bin/c++filt}}}}}}}}}}}" + %{.C:\\| /usr/local/bin/c++filt}%{.M:\\| /usr/local/bin/c++filt} \ + %{.cc:\\| /usr/local/bin/c++filt} \ + %{!.C:%{!.M:%{!.cc:%{ObjC++:\\| /usr/local/bin/c++filt}}}}}}}}}}}" #endif /* Machine dependent ld options. */ --- gcc-2/gcc/cccp.c.ORIG Wed May 31 09:33:01 2000 +++ gcc-2/gcc/cccp.c Sun Jan 14 12:56:23 2001 @@ -6934,6 +6934,12 @@ } hp->defined_within_module = 1; /*fprintf(stderr, "reusing macro %.10s\n", mdef.symnam); */ +#elif MACOSX + if (!ok) { + hp->value.defn = mdef.defn; + ok = 1; /* calm down, everything is ok now */ + } + /* fprintf(stderr, "reusing macro %.10s\n", mdef.symnam); */ #endif } /* Redefining a constant is ok with -D. */