diff -rcp2N g77-0.5.9/README.g77 g77-0.5.10/README.g77 *** g77-0.5.9/README.g77 Tue Feb 21 13:39:10 1995 --- g77-0.5.10/README.g77 Wed Feb 22 16:21:36 1995 *************** *** 1,5 **** ! 950218 ! This directory contains the version 0.5.9 release of the GNU Fortran compiler. The GNU Fortran compiler is free software. See the file COPYING.g77 for copying permission. --- 1,5 ---- ! 950222 ! This directory contains the version 0.5.10 release of the GNU Fortran compiler. The GNU Fortran compiler is free software. See the file COPYING.g77 for copying permission. *************** If you have just unpacked the g77 distri *** 21,25 **** you must merge the contents of the g77 distribution with the appropriate gcc distribution on your system before proceeding. Using sample ! versions of 2.6.3 for gcc and 0.5.9 for g77, the process of unpacking and merging both distributions would be done as follows (where # is the shell prompt): --- 21,25 ---- you must merge the contents of the g77 distribution with the appropriate gcc distribution on your system before proceeding. Using sample ! versions of 2.6.3 for gcc and 0.5.10 for g77, the process of unpacking and merging both distributions would be done as follows (where # is the shell prompt): *************** shell prompt): *** 26,32 **** # tar xf gcc-2.6.3.tar # Creates ./gcc-2.6.3/ ! # tar xf g77-0.5.9.tar # Creates ./g77-0.5.9/ ! * # mv g77-0.5.9/* gcc-2.6.3/ # Merges gcc and g77 into ./gcc-2.6.3/ ! # rmdir g77-0.5.9 # Remove empty ./g77-0.5.9/ Another approach is to do the following: --- 26,32 ---- # tar xf gcc-2.6.3.tar # Creates ./gcc-2.6.3/ ! # tar xf g77-0.5.10.tar # Creates ./g77-0.5.10/ ! * # mv g77-0.5.10/* gcc-2.6.3/ # Merges gcc and g77 into ./gcc-2.6.3/ ! # rmdir g77-0.5.10 # Remove empty ./g77-0.5.10/ Another approach is to do the following: *************** Another approach is to do the following: *** 33,38 **** # tar xf gcc-2.6.3.tar # Creates ./gcc-2.6.3/ ! # ln -s gcc-2.6.3 g77-0.5.9 # Make g77-0.5.9 a link to gcc-2.6.3 ! # tar xf g77-0.5.9.tar # Unpacks g77 into gcc-2.6.3 The latter approach leaves the symbolic link, which might help others --- 33,38 ---- # tar xf gcc-2.6.3.tar # Creates ./gcc-2.6.3/ ! # ln -s gcc-2.6.3 g77-0.5.10 # Make g77-0.5.10 a link to gcc-2.6.3 ! # tar xf g77-0.5.10.tar # Unpacks g77 into gcc-2.6.3 The latter approach leaves the symbolic link, which might help others *************** problem occurs using one of the above me *** 46,50 **** The resulting directory layout is as follows, where gcc/ might be, ! for example, gcc-0.5.9/: gcc/ Non-Fortran files in gcc (not part of g77*.tar) --- 46,50 ---- The resulting directory layout is as follows, where gcc/ might be, ! for example, gcc-0.5.10/: gcc/ Non-Fortran files in gcc (not part of g77*.tar) diff -rcp2N g77-0.5.9/f/CREDITS g77-0.5.10/f/CREDITS *** g77-0.5.9/f/CREDITS Thu Feb 16 20:10:59 1995 --- g77-0.5.10/f/CREDITS Wed Feb 22 16:20:08 1995 *************** of helpful advice to Craig: *** 25,28 **** --- 25,29 ---- Rick Lutowski Toon Moene + Rick Niles Derk Reefman Wayne K. Schroll diff -rcp2N g77-0.5.9/f/ChangeLog g77-0.5.10/f/ChangeLog *** g77-0.5.9/f/ChangeLog Tue Feb 21 13:38:19 1995 --- g77-0.5.10/f/ChangeLog Wed Feb 22 16:20:08 1995 *************** *** 1,2 **** --- 1,28 ---- + Wed Feb 22 13:33:43 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.10 released. + + * CREDITS: Add Rick Niles. + + * INSTALL: Note how to get around lack of makeinfo. + + * Make-lang.in (f/proj.h): Remove # comment. + + * Makefile.in (f/proj.h): Remove # comment. + + * com.c (ffecom_expr_): Simplify opFUNCREF/opSUBRREF conversion. + (ffecom_sym_transform_): For whereGLOBAL and whereDUMMY + kindFUNCTION, use ffecom_tree_fun_type[][] only for non-constant + (non-statement-function) f2c functions. + (ffecom_init_0): ffecom_tree_fun_type[][] and _ptr_to_*_* are + really f2c-interface arrays, so use base type void for COMPLEX + (like CHARACTER). + + Tue Feb 21 19:01:18 1995 Dave Love + + * Make-lang.in (f77.install-common): Expurgate the test for and + possible installation of f2c in line with elsewhere. Seems to have + been missing a semicolon anyhow! + Tue Feb 21 11:45:25 1995 Craig Burley (burley@gnu.ai.mit.edu) diff -rcp2N g77-0.5.9/f/INSTALL g77-0.5.10/f/INSTALL *** g77-0.5.9/f/INSTALL Fri Feb 17 10:12:35 1995 --- g77-0.5.10/f/INSTALL Wed Feb 22 16:20:08 1995 *************** notice and permission notice. Contribut *** 5,9 **** (burley@gnu.ai.mit.edu). ! 950217 Here are the steps that seem important to take before doing any builds: --- 5,9 ---- (burley@gnu.ai.mit.edu). ! 950222 Here are the steps that seem important to take before doing any builds: *************** Here are the steps that seem important t *** 10,14 **** 1. The g77 sources are intended to live in a subdirectory "f" of a ! gcc source tree. For example, the g77 sources for g77-2.6.3-0.5.5 are intended to have names such as gcc-2.6.3/f/proj.h.in. Ensure that you have a gcc source tree with an "f" directory containing --- 10,14 ---- 1. The g77 sources are intended to live in a subdirectory "f" of a ! gcc source tree. For example, the g77 sources for g77-2.6.3-0.5.10 are intended to have names such as gcc-2.6.3/f/proj.h.in. Ensure that you have a gcc source tree with an "f" directory containing *************** Here are the steps that seem important t *** 80,90 **** ALSO ALSO ALSO NOTE: It seems that building g77 might require ! bison to be installed. g77 itself has no need for bison, but ! other portions of gcc might, so before you start building gcc or ! g77, make sure bison is installed. IF YOU CANNOT INSTALL bison, make ! sure you start with a _fresh_ distribution of gcc 2.6.2 or 2.6.3, ! do _not_ do "make realclean", and to be safe, type these commands ! to convince make not to try rebuilding them from the bison input ! files: cd gcc-2.6.2 # or 2.6.3 --- 80,91 ---- ALSO ALSO ALSO NOTE: It seems that building g77 might require ! bison and makeinfo to be installed. g77 itself has no need for these, ! but other portions of gcc might, so before you start building gcc or ! g77, make sure bison and makeinfo are installed. ! ! IF YOU CANNOT INSTALL bison: make sure you start with a _fresh_ ! distribution of gcc 2.6.2 or 2.6.3, do _not_ do "make realclean", ! and to be safe, type these commands to convince make not to try ! rebuilding them from the bison input files: cd gcc-2.6.2 # or 2.6.3 *************** Here are the steps that seem important t *** 91,94 **** --- 92,101 ---- touch bi-parser.c bi-parser.h c-parse.c c-parse.h cexp.c touch cp/parse.c cp/parse.h objc-parse.c + + IF YOU CANNOT INSTALL makeinfo: either use the -k option when + invoking make to specify the install or install-libf77 targets, + or specify "MAKEINFO=echo" on the make command line. If you fail + to do one of these, some things like libf2c.a will fail to be + installed after the attempt to use makeinfo fails. ALSO ALSO ALSO ALSO NOTE: The g77 author uses the "-Wall" option diff -rcp2N g77-0.5.9/f/Make-lang.in g77-0.5.10/f/Make-lang.in *** g77-0.5.9/f/Make-lang.in Tue Feb 21 13:38:20 1995 --- g77-0.5.10/f/Make-lang.in Wed Feb 22 16:20:08 1995 *************** f/proj.h: $(srcdir)/f/proj.h.in $(srcdir *** 201,205 **** cd f; \ CC="$(CC)" CONFIG_SITE=/dev/null $(SHELL) $${src}/conf-proj --srcdir=$${src} ! touch f/proj.h #Make sure date/time follows dependents! # NB. Put stdout for autoconf in temp file, so that if autoconf doesn't # exist, we don't create a null conf-proj that causes the build to try --- 201,205 ---- cd f; \ CC="$(CC)" CONFIG_SITE=/dev/null $(SHELL) $${src}/conf-proj --srcdir=$${src} ! touch f/proj.h # NB. Put stdout for autoconf in temp file, so that if autoconf doesn't # exist, we don't create a null conf-proj that causes the build to try *************** f77.install-common: *** 325,333 **** $(INSTALL_PROGRAM) g77 $(bindir)/$(G77_INSTALL_NAME); \ chmod a+x $(bindir)/$(G77_INSTALL_NAME); \ - if [ -f f2c ]; then \ - rm -f $(bindir)/f2c; \ - $(INSTALL_PROGRAM) f2c $(bindir)/f2c; \ - chmod a+x $(bindir)/f2c; \ - else true; fi \ fi ; \ fi --- 325,328 ---- diff -rcp2N g77-0.5.9/f/Makefile.in g77-0.5.10/f/Makefile.in *** g77-0.5.9/f/Makefile.in Tue Feb 21 13:38:20 1995 --- g77-0.5.10/f/Makefile.in Wed Feb 22 16:20:09 1995 *************** f/proj.h: $(srcdir)/proj.h.in $(srcdir)/ *** 261,265 **** cd f; \ CC="$(CC)" CONFIG_SITE=/dev/null $(SHELL) $${src}/conf-proj --srcdir=$${src} ! touch f/proj.h #Make sure date/time follows dependents! $(srcdir)/conf-proj: $(srcdir)/conf-proj.in cd $(srcdir) && autoconf conf-proj.in > conf-proj.out && \ --- 261,265 ---- cd f; \ CC="$(CC)" CONFIG_SITE=/dev/null $(SHELL) $${src}/conf-proj --srcdir=$${src} ! touch f/proj.h $(srcdir)/conf-proj: $(srcdir)/conf-proj.in cd $(srcdir) && autoconf conf-proj.in > conf-proj.out && \ diff -rcp2N g77-0.5.9/f/com.c g77-0.5.10/f/com.c *** g77-0.5.9/f/com.c Tue Feb 21 13:38:22 1995 --- g77-0.5.10/f/com.c Wed Feb 22 16:20:10 1995 *************** ffecom_expr_ (ffebld expr, tree dest_tre *** 2071,2074 **** --- 2071,2075 ---- /* Fall through. */ case FFEBLD_opSUBRREF: + tree_type = ffecom_tree_type[bt][kt]; if (ffeinfo_where (ffebld_info (ffebld_left (expr))) == FFEINFO_whereINTRINSIC) *************** ffecom_expr_ (ffebld expr, tree dest_tre *** 2093,2120 **** item = ffecom_1_fn (dt); if (ffesymbol_where (s) == FFEINFO_whereCONSTANT) ! { /* Pass sfunc args by value. */ ! ffecom_push_calltemps (); ! args = ffecom_list_expr (ffebld_right (expr)); ! ffecom_pop_calltemps (); ! ! item = build (CALL_EXPR, ! TREE_TYPE (TREE_TYPE (TREE_TYPE (item))), ! item, args, NULL_TREE); ! } else ! { ! ffecom_push_calltemps (); ! args = ffecom_list_ptr_to_expr (ffebld_right (expr)); ! ffecom_pop_calltemps (); ! item = ffecom_call_ (item, kt, ! ffesymbol_is_f2c (s) ! && (bt == FFEINFO_basictypeCOMPLEX), ! TREE_TYPE (TREE_TYPE (TREE_TYPE (item))), ! args, ! dest_tree, dest_info, dest_used); ! TREE_SIDE_EFFECTS (item) = 1; ! } return item; --- 2094,2113 ---- item = ffecom_1_fn (dt); + ffecom_push_calltemps (); if (ffesymbol_where (s) == FFEINFO_whereCONSTANT) ! args = ffecom_list_expr (ffebld_right (expr)); else ! args = ffecom_list_ptr_to_expr (ffebld_right (expr)); ! ffecom_pop_calltemps (); ! item = ffecom_call_ (item, kt, ! ffesymbol_is_f2c (s) ! && (bt == FFEINFO_basictypeCOMPLEX) ! && (ffesymbol_where (s) ! != FFEINFO_whereCONSTANT), ! tree_type, ! args, ! dest_tree, dest_info, dest_used); ! TREE_SIDE_EFFECTS (item) = 1; return item; *************** ffecom_sym_transform_ (ffesymbol s) *** 6559,6565 **** yes = suspend_momentary (); t = build_decl (FUNCTION_DECL, ! ffecom_get_external_identifier_ (ffesymbol_text (s)), ! ffecom_tree_fun_type[bt][kt]); DECL_EXTERNAL (t) = 1; TREE_PUBLIC (t) = 1; --- 6552,6564 ---- yes = suspend_momentary (); + if (ffesymbol_is_f2c (s) + && (ffesymbol_where (s) != FFEINFO_whereCONSTANT)) + t = ffecom_tree_fun_type[bt][kt]; + else + t = build_function_type (ffecom_tree_type[bt][kt], NULL_TREE); + t = build_decl (FUNCTION_DECL, ! ffecom_get_external_identifier_ (ffesymbol_text (s)), ! t); DECL_EXTERNAL (t) = 1; TREE_PUBLIC (t) = 1; *************** ffecom_sym_transform_ (ffesymbol s) *** 6576,6582 **** assert (ffecom_transform_only_dummies_); t = build_decl (PARM_DECL, ffecom_get_identifier_ (ffesymbol_text (s)), ! ffecom_tree_ptr_to_fun_type[bt][kt]); addr = TRUE; break; --- 6575,6587 ---- assert (ffecom_transform_only_dummies_); + if (ffesymbol_is_f2c (s) + && (ffesymbol_where (s) != FFEINFO_whereCONSTANT)) + t = ffecom_tree_fun_type[bt][kt]; + else + t = build_function_type (ffecom_tree_type[bt][kt], NULL_TREE); + t = build_decl (PARM_DECL, ffecom_get_identifier_ (ffesymbol_text (s)), ! t); addr = TRUE; break; *************** ffecom_1 (enum tree_code code, tree type *** 7688,7692 **** #endif ! /* Like ffecom_1_fn (ADDR_EXPR, TREE_TYPE (node), node), except handles TREE_CODE (node) == FUNCTION_DECL. In particular, does not set TREE_ADDRESSABLE (because calling an inline --- 7693,7697 ---- #endif ! /* Like ffecom_1 (ADDR_EXPR, TREE_TYPE (node), node), except handles TREE_CODE (node) == FUNCTION_DECL. In particular, does not set TREE_ADDRESSABLE (because calling an inline *************** ffecom_init_0 () *** 9152,9155 **** --- 9157,9162 ---- if ((t = ffecom_tree_type[i][j]) != NULL_TREE) { + if (i == FFEINFO_basictypeCOMPLEX) + t = void_type_node; t = ffecom_tree_fun_type[i][j] = build_function_type (t, NULL_TREE); diff -rcp2N g77-0.5.9/f/zzz.c g77-0.5.10/f/zzz.c *** g77-0.5.9/f/zzz.c Sat Feb 18 10:06:20 1995 --- g77-0.5.10/f/zzz.c Wed Feb 22 16:20:10 1995 *************** the Free Software Foundation, 675 Mass A *** 36,40 **** /* Externals defined here. */ ! char *ffezzz_version_string = "0.5.9"; char *ffezzz_date = __DATE__; char *ffezzz_time = __TIME__; --- 36,40 ---- /* Externals defined here. */ ! char *ffezzz_version_string = "0.5.10"; char *ffezzz_date = __DATE__; char *ffezzz_time = __TIME__;