Commit 3f0ae30e by Toon Moene Committed by Toon Moene

g77install.texi: Remove.

2001-06-10  Toon Moene  <toon@moene.indiv.nluug.nl>

	* g77install.texi: Remove.
	* Make-lang.in: Remove all mention of g77install.texi.
	* g77.texi: Add documentation on how to get output always
	flushed and how to increase the maximum unit number.
	Remove all mention of g77install.texi.
	* bugs.texi: Add documentation on how to change the threshold
	for putting local arrays on the stack.

From-SVN: r43139
parent 9eee2c76
2001-06-10 Toon Moene <toon@moene.indiv.nluug.nl>
* g77install.texi: Remove.
* Make-lang.in: Remove all mention of g77install.texi.
* g77.texi: Add documentation on how to get output always
flushed and how to increase the maximum unit number.
Remove all mention of g77install.texi.
* bugs.texi: Add documentation on how to change the threshold
for putting local arrays on the stack.
2001-06-03 Toon Moene <toon@moene.indiv.nluug.nl> 2001-06-03 Toon Moene <toon@moene.indiv.nluug.nl>
* root.texi: Fix typo in patches e-mail address. * root.texi: Fix typo in patches e-mail address.
......
...@@ -170,7 +170,7 @@ f77.dvi: f/g77.dvi ...@@ -170,7 +170,7 @@ f77.dvi: f/g77.dvi
# g77 documentation. # g77 documentation.
$(srcdir)/f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ $(srcdir)/f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/ffe.texi $(srcdir)/f/g77install.texi \ $(srcdir)/f/ffe.texi \
$(srcdir)/f/news.texi $(srcdir)/f/intdoc.texi \ $(srcdir)/f/news.texi $(srcdir)/f/intdoc.texi \
$(srcdir)/f/root.texi $(srcdir)/doc/fdl.texi $(srcdir)/f/root.texi $(srcdir)/doc/fdl.texi
case "$(LANGUAGES)" in \ case "$(LANGUAGES)" in \
...@@ -183,7 +183,7 @@ $(srcdir)/f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ ...@@ -183,7 +183,7 @@ $(srcdir)/f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
else true; fi else true; fi
f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/ffe.texi $(srcdir)/f/g77install.texi \ $(srcdir)/f/ffe.texi \
$(srcdir)/f/news.texi $(srcdir)/f/intdoc.texi \ $(srcdir)/f/news.texi $(srcdir)/f/intdoc.texi \
$(srcdir)/f/root.texi $(srcdir)/doc/fdl.texi $(srcdir)/f/root.texi $(srcdir)/doc/fdl.texi
case "$(LANGUAGES)" in \ case "$(LANGUAGES)" in \
......
@c Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. @c Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
@c This is part of the G77 manual. @c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi. @c For copying conditions, see the file g77.texi.
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. BUGS). @c in the standalone derivations of this file (e.g. BUGS).
@set copyrights-bugs 1995,1996,1997,1998,1999,2000,2001 @set copyrights-bugs 1995,1996,1997,1998,1999,2000,2001
@set last-update-bugs 2001-05-22 @set last-update-bugs 2001-06-10
@include root.texi @include root.texi
...@@ -82,18 +82,6 @@ is available via ...@@ -82,18 +82,6 @@ is available via
@uref{http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html}. @uref{http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html}.
Follow the ``Known Bugs'' link. Follow the ``Known Bugs'' link.
@ifset DOC-G77
For information on bugs that might afflict people who
configure, port, build, and install @code{g77},
see @ref{Problems Installing}.
@end ifset
@ifset DOC-BUGS
For information on bugs that might afflict people who
configure, port, build, and install @code{g77},
see "Problems Installing" in @file{@value{path-g77}/INSTALL}.
@end ifset
The following information was last updated on @value{last-update-bugs}: The following information was last updated on @value{last-update-bugs}:
@itemize @bullet @itemize @bullet
...@@ -167,9 +155,40 @@ improvements to the compiler.) ...@@ -167,9 +155,40 @@ improvements to the compiler.)
Note that @code{g77} does display a warning message to Note that @code{g77} does display a warning message to
notify the user before the compiler appears to hang. notify the user before the compiler appears to hang.
@ifset DOC-G77 @ifset DOC-G77
@xref{Large Initialization,,Initialization of Large Aggregate Areas}, A warning message is issued when @code{g77} sees code that provides
for information on how to change the point at which initial values (e.g. via @code{DATA}) to an aggregate area (@code{COMMON}
@code{g77} decides to issue this warning. or @code{EQUIVALENCE}, or even a large enough array or @code{CHARACTER}
variable)
that is large enough to increase @code{g77}'s compile time by roughly
a factor of 10.
This size currently is quite small, since @code{g77}
currently has a known bug requiring too much memory
and time to handle such cases.
In @file{@value{path-g77}/data.c}, the macro
@code{FFEDATA_sizeTOO_BIG_INIT_} is defined
to the minimum size for the warning to appear.
The size is specified in storage units,
which can be bytes, words, or whatever, on a case-by-case basis.
After changing this macro definition, you must
(of course) rebuild and reinstall @code{g77} for
the change to take effect.
Note that, as of version 0.5.18, improvements have
reduced the scope of the problem for @emph{sparse}
initialization of large arrays, especially those
with large, contiguous uninitialized areas.
However, the warning is issued at a point prior to
when @code{g77} knows whether the initialization is sparse,
and delaying the warning could mean it is produced
too late to be helpful.
Therefore, the macro definition should not be adjusted to
reflect sparse cases.
Instead, adjust it to generate the warning when densely
initialized arrays begin to cause responses noticeably slower
than linear performance would suggest.
@end ifset @end ifset
@cindex code, displaying main source @cindex code, displaying main source
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
@c %**start of header @c %**start of header
@setfilename g77.info @setfilename g77.info
@set last-update 2001-06-03 @set last-update 2001-06-10
@set copyrights-g77 1995,1996,1997,1998,1999,2000,2001 @set copyrights-g77 1995,1996,1997,1998,1999,2000,2001
@include root.texi @include root.texi
...@@ -244,7 +244,6 @@ most consistent with the @code{g77} product in that version. ...@@ -244,7 +244,6 @@ most consistent with the @code{g77} product in that version.
* Other Dialects:: Dialects of Fortran supported by @code{g77}. * Other Dialects:: Dialects of Fortran supported by @code{g77}.
* Other Compilers:: Fortran compilers other than @code{g77}. * Other Compilers:: Fortran compilers other than @code{g77}.
* Other Languages:: Languages other than Fortran. * Other Languages:: Languages other than Fortran.
* Installation:: How to configure, compile and install GNU Fortran.
* Debugging and Interfacing:: How @code{g77} generates code. * Debugging and Interfacing:: How @code{g77} generates code.
* Collected Fortran Wisdom:: How to avoid Trouble. * Collected Fortran Wisdom:: How to avoid Trouble.
* Trouble:: If you have trouble with GNU Fortran. * Trouble:: If you have trouble with GNU Fortran.
...@@ -897,9 +896,6 @@ If you intend to write or otherwise compile code that is ...@@ -897,9 +896,6 @@ If you intend to write or otherwise compile code that is
not already strictly conforming ANSI FORTRAN 77---and this not already strictly conforming ANSI FORTRAN 77---and this
is probably everyone---you should see @ref{Language}. is probably everyone---you should see @ref{Language}.
If you don't already have @code{g77} installed on your
system, you must see @ref{Installation}.
If you run into trouble getting Fortran code to compile, If you run into trouble getting Fortran code to compile,
link, run, or work properly, you might find answers link, run, or work properly, you might find answers
if you see @ref{Debugging and Interfacing}, if you see @ref{Debugging and Interfacing},
...@@ -8356,8 +8352,6 @@ These are in @file{@value{path-libf2c}/libF77/}, named @file{main.c}, ...@@ -8356,8 +8352,6 @@ These are in @file{@value{path-libf2c}/libF77/}, named @file{main.c},
Also, the file @file{@value{path-g77}/com.c} contains the code @code{g77} Also, the file @file{@value{path-g77}/com.c} contains the code @code{g77}
uses to open-code (inline) references to @code{IARGC}. uses to open-code (inline) references to @code{IARGC}.
@include g77install.texi
@node Debugging and Interfacing @node Debugging and Interfacing
@chapter Debugging and Interfacing @chapter Debugging and Interfacing
@cindex debugging @cindex debugging
...@@ -10225,9 +10219,46 @@ that a compile-time option to @code{g77} or @code{f2c} could ...@@ -10225,9 +10219,46 @@ that a compile-time option to @code{g77} or @code{f2c} could
result in generating the appropriate calls to flushing or result in generating the appropriate calls to flushing or
non-flushing library routines.) non-flushing library routines.)
@xref{Always Flush Output}, for information on how to modify Some Fortran programs require output
the @code{g77} source tree so that a version of @code{libg2c} (writes) to be flushed to the operating system (under UNIX,
can be built and installed with the @code{ALWAYS_FLUSH} macro defined. via the @code{fflush()} library call) so that errors,
such as disk full, are immediately flagged via the relevant
@code{ERR=} and @code{IOSTAT=} mechanism, instead of such
errors being flagged later as subsequent writes occur, forcing
the previously written data to disk, or when the file is
closed.
Essentially, the difference can be viewed as synchronous error
reporting (immediate flagging of errors during writes) versus
asynchronous, or, more precisely, buffered error reporting
(detection of errors might be delayed).
@code{libg2c} supports flagging write errors immediately when
it is built with the @code{ALWAYS_FLUSH} macro defined.
This results in a @code{libg2c} that runs slower, sometimes
quite a bit slower, under certain circumstances---for example,
accessing files via the networked file system NFS---but the
effect can be more reliable, robust file I/O.
If you know that Fortran programs requiring this level of precision
of error reporting are to be compiled using the
version of @code{g77} you are building, you might wish to
modify the @code{g77} source tree so that the version of
@code{libg2c} is built with the @code{ALWAYS_FLUSH} macro
defined, enabling this behavior.
To do this, find this line in @file{@value{path-libf2c}/f2c.h} in
your @code{g77} source tree:
@example
/* #define ALWAYS_FLUSH */
@end example
Remove the leading @samp{/*@w{ }},
so the line begins with @samp{#define},
and the trailing @samp{@w{ }*/}.
Then build or rebuild @code{g77} as appropriate.
@node Large File Unit Numbers @node Large File Unit Numbers
@subsection Large File Unit Numbers @subsection Large File Unit Numbers
...@@ -10251,17 +10282,41 @@ macro named @code{MXUNIT}. ...@@ -10251,17 +10282,41 @@ macro named @code{MXUNIT}.
If you can easily change your program to use unit numbers If you can easily change your program to use unit numbers
in the range 0 through 99, you should do so. in the range 0 through 99, you should do so.
Otherwise, see @ref{Larger File Unit Numbers}, for information on how As distributed, whether as part of @code{f2c} or @code{g77},
to change @code{MXUNIT} in @code{libg2c} so you can build and @code{libf2c} accepts file unit numbers only in the range
install a new version of @code{libg2c} that supports the larger 0 through 99.
unit numbers you need. For example, a statement such as @samp{WRITE (UNIT=100)} causes
a run-time crash in @code{libf2c}, because the unit number,
100, is out of range.
@emph{Note:} While @code{libg2c} places a limit on the range If you know that Fortran programs at your installation require
of Fortran file-unit numbers, the underlying library and operating the use of unit numbers higher than 99, you can change the
system might impose different kinds of limits. value of the @code{MXUNIT} macro, which represents the maximum unit
For example, some systems limit the number of files simultaneously number, to an appropriately higher value.
open by a running program.
Information on how to increase these limits should be found To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
@code{g77} source tree, changing the following line:
@example
#define MXUNIT 100
@end example
Change the line so that the value of @code{MXUNIT} is defined to be
at least one @emph{greater} than the maximum unit number used by
the Fortran programs on your system.
(For example, a program that does @samp{WRITE (UNIT=255)} would require
@code{MXUNIT} set to at least 256 to avoid crashing.)
Then build or rebuild @code{g77} as appropriate.
@emph{Note:} Changing this macro has @emph{no} effect on other limits
your system might place on the number of files open at the same time.
That is, the macro might allow a program to do @samp{WRITE (UNIT=100)},
but the library and operating system underlying @code{libf2c} might
disallow it if many other files have already been opened (via @code{OPEN} or
implicitly via @code{READ}, @code{WRITE}, and so on).
Information on how to increase these other limits should be found
in your system's documentation. in your system's documentation.
@node Floating-point precision @node Floating-point precision
...@@ -10631,10 +10686,6 @@ Some of these problems are due to bugs in other software, some are ...@@ -10631,10 +10686,6 @@ Some of these problems are due to bugs in other software, some are
missing features that are too much work to add, and some are places missing features that are too much work to add, and some are places
where people's opinions differ as to what is best. where people's opinions differ as to what is best.
Information on bugs that show up when configuring, porting, building,
or installing @code{g77} is not provided here.
@xref{Problems Installing}.
To find out about major bugs discovered in the current release and To find out about major bugs discovered in the current release and
possible workarounds for them, see possible workarounds for them, see
@uref{ftp://alpha.gnu.org/g77.plan}. @uref{ftp://alpha.gnu.org/g77.plan}.
...@@ -10898,9 +10949,26 @@ You might be able to work around the problem by compiling with the ...@@ -10898,9 +10949,26 @@ You might be able to work around the problem by compiling with the
@samp{-fno-automatic} option to reduce stack usage, probably at the @samp{-fno-automatic} option to reduce stack usage, probably at the
expense of speed. expense of speed.
@xref{Maximum Stackable Size}, for information on patching @code{g77}, on most machines, puts many variables and arrays on the stack
@code{g77} to use different criteria for placing local where possible, and can be configured (by changing
non-automatic variables and arrays on the stack. @code{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
smaller-sized entities into static storage (saving
on stack space) or permit larger-sized entities to be put on the
stack (which can improve run-time performance, as it presents
more opportunities for the GBE to optimize the generated code).
@emph{Note:} Putting more variables and arrays on the stack
might cause problems due to system-dependent limits on stack size.
Also, the value of @code{FFECOM_sizeMAXSTACKITEM} has no
effect on automatic variables and arrays.
@xref{But-bugs}, for more information.
@emph{Note:} While @code{libg2c} places a limit on the range
of Fortran file-unit numbers, the underlying library and operating
system might impose different kinds of limits.
For example, some systems limit the number of files simultaneously
open by a running program.
Information on how to increase these limits should be found
in your system's documentation.
@cindex automatic arrays @cindex automatic arrays
@cindex arrays, automatic @cindex arrays, automatic
...@@ -14859,20 +14927,6 @@ without exhibiting any other outward manifestations of the bugs. ...@@ -14859,20 +14927,6 @@ without exhibiting any other outward manifestations of the bugs.
@section @code{LINKFAIL} @section @code{LINKFAIL}
@noindent @noindent
@smallexample
If the above command failed due to an unresolved reference
to strtoul, _strtoul, bsearch, _bsearch, or similar, see
[info -f g77 M LINKFAIL] (a node in the g77 documentation)
for information on what causes this, how to work around
the problem by editing $@{srcdir@}/proj.c, and what else to do.
@end smallexample
@xref{Missing strtoul or bsearch}, for more information on
this problem,
which occurs only in releases of @code{g77}
based on @code{gcc}.
(It did not occur in @code{egcs}.)
On AIX 4.1, @code{g77} might not build with the native (non-GNU) tools On AIX 4.1, @code{g77} might not build with the native (non-GNU) tools
due to a linker bug in coping with the @samp{-bbigtoc} option which due to a linker bug in coping with the @samp{-bbigtoc} option which
leads to a @samp{Relocation overflow} error. The GNU linker is not leads to a @samp{Relocation overflow} error. The GNU linker is not
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment