From beaa74ae0305052f4e96ae02769c5ff0ac89cbc9 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Tue, 11 Aug 1998 10:15:04 +0000 Subject: [PATCH] README: Update from Craig. 1998-08-11 Dave Love * README: Update from Craig. From-SVN: r21672 --- libf2c/ChangeLog | 4 ++ libf2c/README | 113 ++++++++++++++++++++++++++++++++++++----------- 2 files changed, 91 insertions(+), 26 deletions(-) diff --git a/libf2c/ChangeLog b/libf2c/ChangeLog index 2bc7c4cc865..34e29d2df5e 100644 --- a/libf2c/ChangeLog +++ b/libf2c/ChangeLog @@ -1,3 +1,7 @@ +1998-08-11 Dave Love + + * README: Update from Craig. + 1998-07-24 Dave Love * Makefile.in (s-libe77, ${srcdir}/configure, g2c.h, Makefile, diff --git a/libf2c/README b/libf2c/README index 3d0e29d0ac4..008654b3c77 100644 --- a/libf2c/README +++ b/libf2c/README @@ -1,38 +1,41 @@ -1998-04-20 +1998-08-11 -This directory contains the f2c library packaged for use with g77 to configure -and build automatically (in principle!) as part of the top-level configure and -make steps. This depends on the makefile and configure fragments in ../f. -g77 names this library `libg2c' to avoid conflict with existing copies -of `libf2c' on a system. +This directory contains the libf2c library packaged for use with g77 +to configure and build automatically (in principle!) as part of the +top-level configure and make steps. g77 names this library `libg2c' +to avoid conflicts with existing copies of `libf2c' on a system. -Some small changes have been made to the f2c distributions of lib[FI]77 which -come from and are maintained (excellently) by -David M. Gay . See the Notice files for copyright -information. I'll try to get the changes rolled into the f2c distribution. +Some small changes have been made vis-a-vis the netlib distribution of +libf2c, which comes from and is maintained +(excellently) by David M. Gay . See the Notice files +for copyright information. We usually try to get g77-specific changes +rolled back into the libf2c distribution. Files that come directly from netlib are either maintained in the -gcc/f/runtime/ directory under their original names or, if they -are not pertinent for g77's version of libf2c, under their original -names with `.netlib' appended. For example, gcc/f/runtime/permissions.netlib -is a copy of f2c's top-level`permissions' file in the netlib distribution. -In this case, it applies only to the relevant portions of the libF77/ and -libI77/ directories; it does not apply to the libU77/ directory, which is -distributed under different licensing arrangements. Similarly, -the `makefile.netlib' files in libF77/ and libI77/ are copies of -the respective `makefile' files in the netlib distribution, but -are not used when building g77's version of libf2c. +libf2c directory under their original names or, if they are not pertinent +for g77's version of libf2c, under their original names with `.netlib' +appended. For example, permissions.netlib is a copy of f2c's top-level +`permissions' file in the netlib distribution. In this case, it applies +only to the relevant portions of the libF77/ and libI77/ directories; it +does not apply to the libU77/ directory, which is distributed under +different licensing arrangements. Similarly, the `makefile.netlib' files +in the libF77/ and libI77/ subdirectories are copies of the respective +`makefile' files in the netlib distribution, but are not used when +building g77's version of libf2c. -The `README.netlib' files in libF77/ and libI77/ thus might be +The README.netlib files in libF77/ and libI77/ thus might be interesting, but should not be taken as guidelines for how to configure and build libf2c in g77's distribution. -The packaging for auto-configuration was done by Dave Love . -Minor changes have been made by James Craig Burley , -who probably broke things Dave had working. :-) +* Read permissions.netlib for licensing conditions that apply to + distributing programs containing portions of code in the libF77/ and + libI77/ subdirectories. Also read disclaimer.netlib. -Among the user-visible changes (choices) g77 makes in its -version of libf2c: +* Read libU77/COPYING.LIB for licensing conditions that apply to + distributing programs containing portions of code in the libU77/ + subdirectory. + +Among the user-visible changes (choices) g77 makes in its version of libf2c: - f2c.h configured to default to padding unformatted direct reads (#define Pad_UDread), because that's the behavior most users @@ -46,3 +49,61 @@ version of libf2c: - dtime_() and etime_() are from Dave Love's libU77, not from netlib's libF77. + +- Routines that are intended to be called directly via user code + (as in `CALL EXIT', but not the support routines for `OPEN') + have been renamed from `' to `G77__0'. This, in + combination with g77 recognizing these names as intrinsics and + calling them directly by those names, reduces the likelihood of + interface mismatches occurring due to use of compiler options + that change code generation, and permits use of these names as + both intrinsics and user-supplied routines in applications (as + required by the Fortran standards). f2cext.c contains "jacket" + routines named `' that call `G77__0', to support + code that relies on calling the relevant routines as `EXTERNAL' + routines. + + Note that the `_0' in the name denotes version 0 of the *interface*, + not the *implementation*, of a routine. The interface of a + given routine *must not change* -- instead, introduce a new copy + of the code, with an increment (e.g. `_1') suffix, having the + new interface. Whether the previous interface is maintained is + not as important as ensuring the routine implementing the new + interface is never successfully linked to a call in existing, + e.g. previously compiled, code that expects the old interface. + +- Version.c in the subdirectories contains g77-specific version + information and a routine (per subdirectory) to print both the + netlib and g77 version information when called. The `g77 -v' + command is designed to trigger this, by compiling, linking, and + running a small program that calls the routines in sequence. + +- libF77/main.c no longer contains the actual code to copy the + argc and argv values into globals or to set up the signal-handling + environment. These have been removed to libF77/setarg.c and + libF77/setsig.c, respectively. libF77/main.c contains procedure + calls to the new code in place of the code itself. This should + simplify linking executables with a main() function other than + that in libF77/main.c (such as one written by the user in C or + C++). See the g77 documentation for more information. + +- Complex-arithmetic support routines in libF77/ take a different approach + to avoiding problems resulting from aliased input and output arguments, + which should avoid particularly unusual alias problems that netlib + libf2c might suffer from. + +- libF77/signal_.c supports systems with 64-bit pointers and 32-bit + integers. + +- I/O routines in libI77/ have code to detect attempts to do recursive + I/O more "directly", mainly to lead to a clearer diagnostic than + typically occurs under such conditions. + +- Formatted-I/O routines in libI77/ have code to pretty-print a FORMAT + string when printing a fatal diagnostic involving formatted I/O. + +- libI77/open.c supports a more robust, perhaps more secure, method + of naming temporary files on some systems. + +- Some g77-specific handling of building under Microsoft operating + systems exists, mainly in libI77/.