Makefile.in: Remove all targets related to building distributions and diffs, or INSTALL.
* Makefile.in: Remove all targets related to building distributions and diffs, or INSTALL. * INSTALL, install1.texi: Remove. * configure.in: Remove mention of distdir. * configure: Regenerate. * objc/Make-lang.in: Remove mention of distdir. ch: * Make-lang.in (CHILL.distdir): Remove. cp: * Make-lang.in (c++.distdir): Remove. f: * Make-lang.in: Remove f77.distdir and f/INSTALL. * INSTALL, install0.texi: Remove. java: * Make-lang.in (java.distdir): Remove. From-SVN: r37265
This commit is contained in:
parent
28d31a703f
commit
436a88a6d4
@ -1,3 +1,12 @@
|
||||
2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* Makefile.in: Remove all targets related to building
|
||||
distributions and diffs, or INSTALL.
|
||||
* INSTALL, install1.texi: Remove.
|
||||
* configure.in: Remove mention of distdir.
|
||||
* configure: Regenerate.
|
||||
* objc/Make-lang.in: Remove mention of distdir.
|
||||
|
||||
2000-11-04 Neil Booth <neilb@earthling.net>
|
||||
|
||||
* cpp.texi: Update for _Pragma.
|
||||
|
2197
gcc/INSTALL
2197
gcc/INSTALL
File diff suppressed because it is too large
Load Diff
119
gcc/Makefile.in
119
gcc/Makefile.in
@ -49,7 +49,7 @@ LANGUAGES = c gcov$(exeext) $(CONFIG_LANGUAGES)
|
||||
# Languages should create dependencies of $(INTL_TARGETS) on generated
|
||||
# sources in Make-lang.in. Example:
|
||||
# $(INTL_TARGETS): $(srcdir)/cp/parse.c
|
||||
INTL_TARGETS = intl.all intl.install intl.distdir
|
||||
INTL_TARGETS = intl.all intl.install
|
||||
|
||||
# Selection of languages to be made during stage1 build.
|
||||
# This is overridden by configure.
|
||||
@ -700,7 +700,6 @@ ORDINARY_FLAGS_TO_PASS = \
|
||||
"bindir=$(bindir)" \
|
||||
"libsubdir=$(libsubdir)" \
|
||||
"datadir=$(datadir)" \
|
||||
"distdir=../tmp/\$$(subdir)" \
|
||||
"localedir=$(localedir)"
|
||||
FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) "CC=@cc_set_by_configure@"
|
||||
PREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \
|
||||
@ -831,7 +830,7 @@ C_TREE_H = c-tree.h $(C_COMMON_H)
|
||||
# all.build, all.cross, start.encap, rest.encap,
|
||||
# info, dvi,
|
||||
# install-normal, install-common, install-info, install-man,
|
||||
# uninstall, distdir,
|
||||
# uninstall,
|
||||
# mostlyclean, clean, distclean, extraclean, maintainer-clean,
|
||||
# stage1, stage2, stage3, stage4
|
||||
#
|
||||
@ -893,7 +892,7 @@ cstamp-h: config.in config.status
|
||||
# config.status does not exist before failing.
|
||||
config.status: $(srcdir)/configure version.c
|
||||
@if [ ! -f config.status ] ; then \
|
||||
echo You must configure gcc. Look at the INSTALL file for details.; \
|
||||
echo You must configure gcc. Look at http://gcc.gnu.org/install/ for details.; \
|
||||
false; \
|
||||
else \
|
||||
LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status --recheck; \
|
||||
@ -1815,7 +1814,7 @@ $(top_builddir)/intl/libintl.a: intl.all
|
||||
# Make sure all the headers are there for xgettext to scan.
|
||||
$(INTL_TARGETS): $(srcdir)/c-parse.c
|
||||
|
||||
intl.all intl.install intl.uninstall intl.distdir \
|
||||
intl.all intl.install intl.uninstall \
|
||||
intl.mostlyclean intl.clean intl.distclean intl.maintainer-clean:
|
||||
@for d in $(INTL_SUBDIRS); do \
|
||||
target=`expr $@ : 'intl.\(.*\)'` && \
|
||||
@ -1824,12 +1823,6 @@ intl.all intl.install intl.uninstall intl.distdir \
|
||||
if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
|
||||
done
|
||||
|
||||
# intl.distdir doesn't copy the intl makefiles (since they aren't distributed),
|
||||
# but we need them for the `make extraclean' in distdir-finish.
|
||||
intl.distdir-fixup:
|
||||
for d in $(INTL_SUBDIRS); do \
|
||||
ln $$d/Makefile tmp/$$d || cp $$d/Makefile tmp/$$d || exit; \
|
||||
done
|
||||
#
|
||||
# Remake cpp and protoize.
|
||||
|
||||
@ -2161,10 +2154,6 @@ cpp.dvi: $(srcdir)/cpp.texi
|
||||
texindex cpp.??
|
||||
TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex cpp.texi
|
||||
|
||||
|
||||
INSTALL: $(srcdir)/install1.texi $(srcdir)/install.texi
|
||||
(cd $(srcdir) && $(MAKEINFO) -D INSTALLONLY \
|
||||
--no-split --no-headers -o INSTALL install1.texi)
|
||||
#
|
||||
# Deletion of files made during compilation.
|
||||
# There are four levels of this:
|
||||
@ -2720,106 +2709,6 @@ TAGS: force
|
||||
mv tmp-tags/* .; \
|
||||
rmdir tmp-tags)
|
||||
|
||||
# Create the distribution tar.gz file.
|
||||
dist: tmp-gcc.xtar
|
||||
gzip --best < tmp-gcc.xtar > tmp-gcc.xtar.gz
|
||||
mv tmp-gcc.xtar.gz gcc-$(version).tar.gz
|
||||
|
||||
tmp-gcc.xtar: distdir
|
||||
# Make the distribution.
|
||||
tar -chf tmp-gcc.xtar gcc-$(version)
|
||||
|
||||
distdir-cvs: force
|
||||
if [ -d $(srcdir)/CVS ]; then (cd $(srcdir) && cvs -r update); fi
|
||||
|
||||
# This target exists to do the initial work before the language specific
|
||||
# stuff gets done.
|
||||
distdir-start: doc $(srcdir)/INSTALL $(srcdir)/c-parse.y \
|
||||
$(srcdir)/c-parse.c $(srcdir)/config.in $(srcdir)/version.c TAGS
|
||||
@case '$(USE_NLS)' in \
|
||||
yes) ;; \
|
||||
*) echo "configure with --enable-nls before making a distribution"; \
|
||||
exit 1;; \
|
||||
esac
|
||||
@if grep -s "for version ${mainversion}" gcc.texi > /dev/null; \
|
||||
then true; \
|
||||
else echo "You must update the version number in \`gcc.texi'"; sleep 10;\
|
||||
fi
|
||||
# Update the version number in README
|
||||
$(AWK) '$$1 " " $$2 " " $$3 == "This directory contains" \
|
||||
{ $$6 = version; print $$0 } \
|
||||
$$1 " " $$2 " " $$3 != "This directory contains"' \
|
||||
version=$(version) $(srcdir)/README > tmp.README
|
||||
mv tmp.README README
|
||||
-rm -rf gcc-$(version) tmp
|
||||
# Put all the files in a temporary subdirectory
|
||||
# which has the name that we want to have in the tar file.
|
||||
mkdir tmp
|
||||
mkdir tmp/config
|
||||
mkdir tmp/ginclude
|
||||
mkdir tmp/objc
|
||||
mkdir tmp/intl
|
||||
mkdir tmp/po
|
||||
for file in `(cd $(srcdir) && echo *[0-9a-zA-Z+])`; do \
|
||||
test -f $(srcdir)/$$file && $(LN_S) $(srcdir)/$$file tmp; \
|
||||
done
|
||||
if test "$(srcdir)" != "." ; then \
|
||||
for file in c-parse.c ; do \
|
||||
test -f ./$$file && $(LN_S) ../$$file tmp; \
|
||||
done; \
|
||||
fi
|
||||
for file in `(cd $(srcdir)/config && echo *[0-9a-zA-Z+])`; do \
|
||||
if test -d $(srcdir)/config/$$file \
|
||||
&& test "$$file" != RCS && test "$$file" != CVS; then \
|
||||
mkdir tmp/config/$$file; \
|
||||
for subfile in `(cd $(srcdir)/config/$$file && echo *[0-9a-zA-Z+])`; do \
|
||||
$(LN_S) $(srcdir)/config/$$file/$$subfile tmp/config/$$file; \
|
||||
done; \
|
||||
else \
|
||||
$(LN_S) $(srcdir)/config/$$file tmp/config; \
|
||||
fi; \
|
||||
done
|
||||
for file in `(cd $(srcdir)/ginclude && echo *[0-9a-zA-Z+])`; do \
|
||||
$(LN_S) $(srcdir)/ginclude/$$file tmp/ginclude; \
|
||||
done
|
||||
for file in `(cd $(srcdir)/objc && echo *[0-9a-zA-Z+])`; do \
|
||||
$(LN_S) $(srcdir)/objc/$$file tmp/objc; \
|
||||
done
|
||||
$(LN_S) .gdbinit tmp
|
||||
|
||||
# Finish making `distdir', after the languages have done their thing.
|
||||
distdir-finish:
|
||||
mv tmp gcc-$(version)
|
||||
# Get rid of everything we don't want in the distribution. We'd want
|
||||
# this to use Makefile.in, but it doesn't have the `lang.foo' targets
|
||||
# expanded.
|
||||
(cd gcc-$(version) && make extraclean distdir-check VERSION_DEP=)
|
||||
|
||||
distdir-check:
|
||||
($(AWK) '/^[^#]/{print} /^#[A-Za-z]/{print substr($$1, 2)}' | sort) \
|
||||
< po/POTFILES.in > tmp.POTFILES
|
||||
ls [A-Za-z]*.[ch] [a-z]*/[A-Za-z]*.[ch] \
|
||||
[a-z]*/[a-z]*/[A-Za-z]*.[ch] | sort > tmp.src
|
||||
diff tmp.POTFILES tmp.src || { \
|
||||
echo "po/POTFILES.in and sources do not match -- please fix"; \
|
||||
exit 1; \
|
||||
}
|
||||
rm -f tmp.*
|
||||
|
||||
distdir: distdir-cvs distdir-start intl.distdir intl.distdir-fixup \
|
||||
lang.distdir distdir-finish
|
||||
|
||||
# make diff oldversion=M.N
|
||||
# creates a diff file between an older distribution and this one.
|
||||
# The -P option assumes this is GNU diff.
|
||||
diff:
|
||||
diff -rc2P -x c-parse.y -x c-parse.c \
|
||||
-x TAGS -x INSTALL -x configure -x config.in \
|
||||
-x "gcc.??" -x "gcc.??s" -x gcc.aux -x "gcc.info*" \
|
||||
-x "cpp.??" -x "cpp.??s" -x cpp.aux -x "cpp.info*" \
|
||||
$(LANG_DIFF_EXCLUDES) \
|
||||
gcc-$(oldversion) gcc-$(version) > gcc-$(oldversion)-$(version).diff
|
||||
|
||||
# A list of files to be destroyed during "lean" builds.
|
||||
VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) $(LIBCPP_OBJS) *.c *.h gen*`
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* Make-lang.in (CHILL.distdir): Remove.
|
||||
|
||||
2000-11-02 Geoffrey Keating <geoffk@cygnus.com>
|
||||
|
||||
* Make-lang.in: Remove 'CYGNUS LOCAL' markers.
|
||||
|
@ -24,7 +24,7 @@
|
||||
# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap,
|
||||
# foo.info, foo.dvi,
|
||||
# foo.install-normal, foo.install-common, foo.install-info, foo.install-man,
|
||||
# foo.uninstall, foo.distdir,
|
||||
# foo.uninstall,
|
||||
# foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean,
|
||||
# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
|
||||
#
|
||||
@ -184,15 +184,3 @@ CHILL.stage3: stage3-start
|
||||
-mv ch/*.o stage3/ch
|
||||
CHILL.stage4: stage4-start
|
||||
-mv ch/*.o stage4/ch
|
||||
#
|
||||
# Maintenance hooks:
|
||||
|
||||
# This target creates the files that can be rebuilt, but go in the
|
||||
# distribution anyway. It then copies the files to the distdir directory.
|
||||
CHILL.distdir:
|
||||
mkdir tmp/ch
|
||||
cd ch ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) hash.h
|
||||
cd ch; \
|
||||
for file in *[0-9a-zA-Z+]; do \
|
||||
ln $$file ../tmp/ch >/dev/null 2>&1 || cp $$file ../tmp/ch; \
|
||||
done
|
||||
|
8
gcc/configure
vendored
8
gcc/configure
vendored
@ -1553,7 +1553,7 @@ for ac_kw in inline __inline__ __inline; do
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
} int $ac_kw foo() {
|
||||
} $ac_kw foo() {
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:1560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
@ -7264,7 +7264,7 @@ else
|
||||
int main() {
|
||||
|
||||
/* Ultrix mips cc rejects this. */
|
||||
typedef int charset[2]; const charset x = {0,0};
|
||||
typedef int charset[2]; const charset x;
|
||||
/* SunOS 4.1.1 cc rejects this. */
|
||||
char const *const *ccp;
|
||||
char **p;
|
||||
@ -7405,7 +7405,7 @@ else
|
||||
#include "confdefs.h"
|
||||
#include <alloca.h>
|
||||
int main() {
|
||||
void *p = alloca(2 * sizeof(int));
|
||||
char *p = alloca(2 * sizeof(int));
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
@ -9652,7 +9652,7 @@ touch Make-hooks
|
||||
target_list="all.build all.cross start.encap rest.encap \
|
||||
info dvi \
|
||||
install-normal install-common install-info install-man \
|
||||
uninstall distdir \
|
||||
uninstall \
|
||||
mostlyclean clean distclean extraclean maintainer-clean \
|
||||
stage1 stage2 stage3 stage4"
|
||||
for t in $target_list
|
||||
|
@ -5033,7 +5033,7 @@ touch Make-hooks
|
||||
target_list="all.build all.cross start.encap rest.encap \
|
||||
info dvi \
|
||||
install-normal install-common install-info install-man \
|
||||
uninstall distdir \
|
||||
uninstall \
|
||||
mostlyclean clean distclean extraclean maintainer-clean \
|
||||
stage1 stage2 stage3 stage4"
|
||||
for t in $target_list
|
||||
|
@ -1,3 +1,7 @@
|
||||
2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* Make-lang.in (c++.distdir): Remove.
|
||||
|
||||
2000-11-04 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* decl2.c (do_nonmember_using_decl): Allow `extern "C"'
|
||||
|
@ -25,7 +25,7 @@
|
||||
# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap,
|
||||
# foo.info, foo.dvi,
|
||||
# foo.install-normal, foo.install-common, foo.install-info, foo.install-man,
|
||||
# foo.uninstall, foo.distdir,
|
||||
# foo.uninstall,
|
||||
# foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean,
|
||||
# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
|
||||
#
|
||||
@ -225,24 +225,6 @@ c++.stage3: stage3-start
|
||||
-mv cp/*$(objext) stage3/cp
|
||||
c++.stage4: stage4-start
|
||||
-mv cp/*$(objext) stage4/cp
|
||||
#
|
||||
# Maintenance hooks:
|
||||
|
||||
# This target creates the files that can be rebuilt, but go in the
|
||||
# distribution anyway. It then copies the files to the distdir directory.
|
||||
c++.distdir:
|
||||
mkdir tmp/cp
|
||||
mkdir tmp/cp/inc
|
||||
cd cp ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) parse.c hash.h
|
||||
cd cp; \
|
||||
for file in *[0-9a-zA-Z+]; do \
|
||||
$(LN) $$file ../tmp/cp; \
|
||||
done
|
||||
cd cp/inc; \
|
||||
for file in *[0-9a-zA-Z+]; do \
|
||||
ln $$file ../../tmp/cp/inc >/dev/null 2>&1 \
|
||||
|| cp $$file ../../tmp/cp/inc; \
|
||||
done
|
||||
|
||||
#
|
||||
# .o: .h dependencies.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* Make-lang.in: Remove f77.distdir and f/INSTALL.
|
||||
* INSTALL, install0.texi: Remove.
|
||||
|
||||
2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* com.c (open_include_file, ffecom_open_include_): Use strchr ()
|
||||
|
352
gcc/f/INSTALL
352
gcc/f/INSTALL
@ -1,352 +0,0 @@
|
||||
*Note:* This file is automatically generated from the files
|
||||
`install0.texi' and `g77install.texi'. `INSTALL' is *not* a source
|
||||
file, although it is normally included within source distributions.
|
||||
|
||||
This file contains installation information for the GNU Fortran
|
||||
compiler. Copyright (C) {No Value For "copyrights-install"} Free
|
||||
Software Foundation, Inc. You may copy, distribute, and modify it
|
||||
freely as long as you preserve this copyright notice and permission
|
||||
notice.
|
||||
|
||||
Installing GNU Fortran
|
||||
**********************
|
||||
|
||||
The following information describes how to install `g77'.
|
||||
|
||||
Note that, for users of the GCC-2.95 version of `g77', much of the
|
||||
information is obsolete, and is superceded by the GCC installation
|
||||
procedures. Such information is accordingly omitted and flagged as
|
||||
such.
|
||||
|
||||
*Warning:* The information below is still under development, and
|
||||
might not accurately reflect the `g77' code base of which it is a part.
|
||||
Efforts are made to keep it somewhat up-to-date, but they are
|
||||
particularly concentrated on any version of this information that is
|
||||
distributed as part of a *released* `g77'.
|
||||
|
||||
In particular, while this information is intended to apply to the
|
||||
GCC-2.95 version of `g77', only an official *release* of that version
|
||||
is expected to contain documentation that is most consistent with the
|
||||
`g77' product in that version.
|
||||
|
||||
The following information was last updated on 1999-07-17:
|
||||
|
||||
Prerequisites
|
||||
=============
|
||||
|
||||
For users of the GCC-2.95 version of `g77', this information is
|
||||
superceded by the GCC installation instructions.
|
||||
|
||||
Problems Installing
|
||||
===================
|
||||
|
||||
This is a list of problems (and some apparent problems which don't
|
||||
really mean anything is wrong) that show up when configuring, building,
|
||||
installing, or porting GNU Fortran.
|
||||
|
||||
*Note Installation Problems: (gcc)Installation Problems, for more
|
||||
information on installation problems that can afflict either `gcc' or
|
||||
`g77'.
|
||||
|
||||
General Problems
|
||||
----------------
|
||||
|
||||
These problems can occur on most or all systems.
|
||||
|
||||
GNU C Required
|
||||
..............
|
||||
|
||||
Compiling `g77' requires GNU C, not just ANSI C. Fixing this
|
||||
wouldn't be very hard (just tedious), but the code using GNU extensions
|
||||
to the C language is expected to be rewritten for 0.6 anyway, so there
|
||||
are no plans for an interim fix.
|
||||
|
||||
This requirement does not mean you must already have `gcc' installed
|
||||
to build `g77'. As long as you have a working C compiler, you can use a
|
||||
"bootstrap" build to automate the process of first building `gcc' using
|
||||
the working C compiler you have, then building `g77' and rebuilding
|
||||
`gcc' using that just-built `gcc', and so on.
|
||||
|
||||
Patching GNU CC
|
||||
...............
|
||||
|
||||
`g77' no longer requires application of a patch file to the `gcc'
|
||||
compiler tree. In fact, no such patch file is distributed with `g77'.
|
||||
This is as of version 0.5.23 and `egcs' version 1.0.
|
||||
|
||||
Building GNU CC Necessary
|
||||
.........................
|
||||
|
||||
It should be possible to build the runtime without building `cc1'
|
||||
and other non-Fortran items, but, for now, an easy way to do that is
|
||||
not yet established.
|
||||
|
||||
Missing strtoul or bsearch
|
||||
..........................
|
||||
|
||||
This information does not apply to the GCC-2.95 version of `g77',
|
||||
|
||||
Cleanup Kills Stage Directories
|
||||
...............................
|
||||
|
||||
It'd be helpful if `g77''s `Makefile.in' or `Make-lang.in' would
|
||||
create the various `stageN' directories and their subdirectories, so
|
||||
developers and expert installers wouldn't have to reconfigure after
|
||||
cleaning up.
|
||||
|
||||
That help has arrived as of version 0.5.23 of `g77' and version 1.1
|
||||
of `egcs'. Configuration itself no longer creates any particular
|
||||
directories that are unique to `g77'. The build procedures in
|
||||
`Make-lang.in' take care of that, on demand.
|
||||
|
||||
LANGUAGES Macro Ignored
|
||||
.......................
|
||||
|
||||
Prior to version 0.5.23 of `g77' and version 1.1 of `egcs', `g77'
|
||||
would sometimes ignore the absence of `f77' and `F77' in the
|
||||
`LANGUAGES' macro definition used for the `make' command being
|
||||
processed.
|
||||
|
||||
As of `g77' version 0.5.23 and `egcs' version 1.1, `g77' now obeys
|
||||
this macro in all relevant situations.
|
||||
|
||||
However, in versions of `gcc' through 2.8.1, non-`g77' portions of
|
||||
`gcc', such as `g++', are known to go ahead and perform various
|
||||
language-specific activities when their respective language strings do
|
||||
not appear in the `LANGUAGES' macro in effect during that invocation of
|
||||
`make'.
|
||||
|
||||
It is expected that these remaining problems will be fixed in a
|
||||
future version of `gcc'.
|
||||
|
||||
System-specific Problems
|
||||
------------------------
|
||||
|
||||
A linker bug on some versions of AIX 4.1 might prevent building when
|
||||
`g77' is built within `gcc'. It might also occur when building within
|
||||
`egcs'.
|
||||
|
||||
Cross-compiler Problems
|
||||
-----------------------
|
||||
|
||||
`g77' has been in alpha testing since September of 1992, and in
|
||||
public beta testing since February of 1995. Alpha testing was done by
|
||||
a small number of people worldwide on a fairly wide variety of
|
||||
machines, involving self-compilation in most or all cases. Beta
|
||||
testing has been done primarily via self-compilation, but in more and
|
||||
more cases, cross-compilation (and "criss-cross compilation", where a
|
||||
version of a compiler is built on one machine to run on a second and
|
||||
generate code that runs on a third) has been tried and has succeeded,
|
||||
to varying extents.
|
||||
|
||||
Generally, `g77' can be ported to any configuration to which `gcc',
|
||||
`f2c', and `libf2c' can be ported and made to work together, aside from
|
||||
the known problems described in this manual. If you want to port `g77'
|
||||
to a particular configuration, you should first make sure `gcc' and
|
||||
`libf2c' can be ported to that configuration before focusing on `g77',
|
||||
because `g77' is so dependent on them.
|
||||
|
||||
Even for cases where `gcc' and `libf2c' work, you might run into
|
||||
problems with cross-compilation on certain machines, for several
|
||||
reasons.
|
||||
|
||||
* There is one known bug (a design bug to be fixed in 0.6) that
|
||||
prevents configuration of `g77' as a cross-compiler in some cases,
|
||||
though there are assumptions made during configuration that
|
||||
probably make doing non-self-hosting builds a hassle, requiring
|
||||
manual intervention.
|
||||
|
||||
* `gcc' might still have some trouble being configured for certain
|
||||
combinations of machines. For example, it might not know how to
|
||||
handle floating-point constants.
|
||||
|
||||
* Improvements to the way `libg2c' is built could make building
|
||||
`g77' as a cross-compiler easier--for example, passing and using
|
||||
`$(LD)' and `$(AR)' in the appropriate ways. (This is improved in
|
||||
the `egcs' version of `g77', especially as of version 1.1.)
|
||||
|
||||
* There are still some challenges putting together the right
|
||||
run-time libraries (needed by `libg2c') for a target system,
|
||||
depending on the systems involved in the configuration. (This is
|
||||
a general problem with cross-compilation, and with `gcc' in
|
||||
particular.)
|
||||
|
||||
Changing Settings Before Building
|
||||
=================================
|
||||
|
||||
Here are some internal `g77' settings that can be changed by editing
|
||||
source files in `egcs/gcc/f/' before building.
|
||||
|
||||
This information, and perhaps even these settings, represent
|
||||
stop-gap solutions to problems people doing various ports of `g77' have
|
||||
encountered. As such, none of the following information is expected to
|
||||
be pertinent in future versions of `g77'.
|
||||
|
||||
Larger File Unit Numbers
|
||||
------------------------
|
||||
|
||||
As distributed, whether as part of `f2c' or `g77', `libf2c' accepts
|
||||
file unit numbers only in the range 0 through 99. For example, a
|
||||
statement such as `WRITE (UNIT=100)' causes a run-time crash in
|
||||
`libf2c', because the unit number, 100, is out of range.
|
||||
|
||||
If you know that Fortran programs at your installation require the
|
||||
use of unit numbers higher than 99, you can change the value of the
|
||||
`MXUNIT' macro, which represents the maximum unit number, to an
|
||||
appropriately higher value.
|
||||
|
||||
To do this, edit the file `egcs/libf2c/libI77/fio.h' in your `g77'
|
||||
source tree, changing the following line:
|
||||
|
||||
#define MXUNIT 100
|
||||
|
||||
Change the line so that the value of `MXUNIT' is defined to be at
|
||||
least one *greater* than the maximum unit number used by the Fortran
|
||||
programs on your system.
|
||||
|
||||
(For example, a program that does `WRITE (UNIT=255)' would require
|
||||
`MXUNIT' set to at least 256 to avoid crashing.)
|
||||
|
||||
Then build or rebuild `g77' as appropriate.
|
||||
|
||||
*Note:* Changing this macro has *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 `WRITE (UNIT=100)', but the
|
||||
library and operating system underlying `libf2c' might disallow it if
|
||||
many other files have already been opened (via `OPEN' or implicitly via
|
||||
`READ', `WRITE', and so on). Information on how to increase these
|
||||
other limits should be found in your system's documentation.
|
||||
|
||||
Always Flush Output
|
||||
-------------------
|
||||
|
||||
Some Fortran programs require output (writes) to be flushed to the
|
||||
operating system (under UNIX, via the `fflush()' library call) so that
|
||||
errors, such as disk full, are immediately flagged via the relevant
|
||||
`ERR=' and `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).
|
||||
|
||||
`libg2c' supports flagging write errors immediately when it is built
|
||||
with the `ALWAYS_FLUSH' macro defined. This results in a `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 `g77' you
|
||||
are building, you might wish to modify the `g77' source tree so that
|
||||
the version of `libg2c' is built with the `ALWAYS_FLUSH' macro defined,
|
||||
enabling this behavior.
|
||||
|
||||
To do this, find this line in `egcs/libf2c/f2c.h' in your `g77'
|
||||
source tree:
|
||||
|
||||
/* #define ALWAYS_FLUSH */
|
||||
|
||||
Remove the leading `/* ', so the line begins with `#define', and the
|
||||
trailing ` */'.
|
||||
|
||||
Then build or rebuild `g77' as appropriate.
|
||||
|
||||
Maximum Stackable Size
|
||||
----------------------
|
||||
|
||||
`g77', on most machines, puts many variables and arrays on the stack
|
||||
where possible, and can be configured (by changing
|
||||
`FFECOM_sizeMAXSTACKITEM' in `egcs/gcc/f/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).
|
||||
|
||||
*Note:* Putting more variables and arrays on the stack might cause
|
||||
problems due to system-dependent limits on stack size. Also, the value
|
||||
of `FFECOM_sizeMAXSTACKITEM' has no effect on automatic variables and
|
||||
arrays. *Note But-bugs::, for more information.
|
||||
|
||||
Floating-point Bit Patterns
|
||||
---------------------------
|
||||
|
||||
The `g77' build will crash if an attempt is made to build it as a
|
||||
cross-compiler for a target when `g77' cannot reliably determine the
|
||||
bit pattern of floating-point constants for the target. Planned
|
||||
improvements for version 0.6 of `g77' will give it the capabilities it
|
||||
needs to not have to crash the build but rather generate correct code
|
||||
for the target. (Currently, `g77' would generate bad code under such
|
||||
circumstances if it didn't crash during the build, e.g. when compiling
|
||||
a source file that does something like `EQUIVALENCE (I,R)' and `DATA
|
||||
R/9.43578/'.)
|
||||
|
||||
Initialization of Large Aggregate Areas
|
||||
---------------------------------------
|
||||
|
||||
A warning message is issued when `g77' sees code that provides
|
||||
initial values (e.g. via `DATA') to an aggregate area (`COMMON' or
|
||||
`EQUIVALENCE', or even a large enough array or `CHARACTER' variable)
|
||||
that is large enough to increase `g77''s compile time by roughly a
|
||||
factor of 10.
|
||||
|
||||
This size currently is quite small, since `g77' currently has a
|
||||
known bug requiring too much memory and time to handle such cases. In
|
||||
`egcs/gcc/f/data.c', the macro `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 `g77' for the change to take effect.
|
||||
|
||||
Note that, as of version 0.5.18, improvements have reduced the scope
|
||||
of the problem for *sparse* initialization of large arrays, especially
|
||||
those with large, contiguous uninitialized areas. However, the warning
|
||||
is issued at a point prior to when `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.
|
||||
|
||||
Alpha Problems Fixed
|
||||
--------------------
|
||||
|
||||
`g77' used to warn when it was used to compile Fortran code for a
|
||||
target configuration that is not basically a 32-bit machine (such as an
|
||||
Alpha, which is a 64-bit machine, especially if it has a 64-bit
|
||||
operating system running on it). That was because `g77' was known to
|
||||
not work properly on such configurations.
|
||||
|
||||
As of version 0.5.20, `g77' is believed to work well enough on such
|
||||
systems. So, the warning is no longer needed or provided.
|
||||
|
||||
However, support for 64-bit systems, especially in areas such as
|
||||
cross-compilation and handling of intrinsics, is still incomplete. The
|
||||
symptoms are believed to be compile-time diagnostics rather than the
|
||||
generation of bad code. It is hoped that version 0.6 will completely
|
||||
support 64-bit systems.
|
||||
|
||||
Quick Start
|
||||
===========
|
||||
|
||||
For users of the GCC-2.95 version of `g77', this information is
|
||||
superceded by the GCC installation instructions.
|
||||
|
||||
Complete Installation
|
||||
=====================
|
||||
|
||||
For users of the GCC-2.95 version of `g77', this information is
|
||||
superceded by the GCC installation instructions.
|
||||
|
||||
Distributing Binaries
|
||||
=====================
|
||||
|
||||
For users of the GCC-2.95 version of `g77', this information is
|
||||
superceded by the GCC installation instructions.
|
||||
|
@ -24,7 +24,7 @@
|
||||
# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap,
|
||||
# foo.info, foo.dvi,
|
||||
# foo.install-normal, foo.install-common, foo.install-info, foo.install-man,
|
||||
# foo.uninstall, foo.distdir,
|
||||
# foo.uninstall,
|
||||
# foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean,
|
||||
# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
|
||||
#
|
||||
@ -56,7 +56,7 @@ F77 f77: f771$(exeext)
|
||||
f77.install-normal \
|
||||
f77.install-common f77.install-info f77.install-man \
|
||||
f77.uninstall f77.mostlyclean f77.clean f77.distclean \
|
||||
f77.extraclean f77.maintainer-clean f77.distdir f77.rebuilt \
|
||||
f77.extraclean f77.maintainer-clean f77.rebuilt \
|
||||
f77.stage1 f77.stage2 f77.stage3 f77.stage4
|
||||
|
||||
g77spec.o: $(srcdir)/f/g77spec.c $(srcdir)/f/version.h system.h $(GCC_H)
|
||||
@ -233,15 +233,11 @@ $(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi f/root.texi
|
||||
cd $(srcdir)/f; $(MAKEINFO) -D BUGSONLY --no-header --no-split \
|
||||
--no-validate -o BUGS bugs0.texi
|
||||
|
||||
$(srcdir)/f/INSTALL: f/install0.texi f/g77install.texi f/root.texi
|
||||
cd $(srcdir)/f; $(MAKEINFO) -D INSTALLONLY --no-header --no-split \
|
||||
--no-validate -o INSTALL install0.texi
|
||||
|
||||
$(srcdir)/f/NEWS: f/news0.texi f/news.texi f/root.texi
|
||||
cd $(srcdir)/f; $(MAKEINFO) -D NEWSONLY --no-header --no-split \
|
||||
--no-validate -o NEWS news0.texi
|
||||
|
||||
f77.rebuilt: f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \
|
||||
f77.rebuilt: f/g77.info $(srcdir)/f/BUGS \
|
||||
$(srcdir)/f/NEWS
|
||||
|
||||
#
|
||||
@ -364,7 +360,7 @@ f77.distclean:
|
||||
-rm -f lang-f77 f/Makefile
|
||||
f77.extraclean:
|
||||
f77.maintainer-clean:
|
||||
-rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/INSTALL f/NEWS f/intdoc.texi
|
||||
-rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/NEWS f/intdoc.texi
|
||||
#
|
||||
# Stage hooks:
|
||||
# The main makefile has already created stage?/f.
|
||||
@ -388,23 +384,6 @@ f77.stage4: stage4-start
|
||||
-if [ -f lang-f77 ]; then \
|
||||
mv -f $(G77STAGESTUFF) stage4/f; \
|
||||
fi
|
||||
#
|
||||
# Maintenance hooks:
|
||||
|
||||
# This target creates the files that can be rebuilt, but go in the
|
||||
# distribution anyway. It then copies the files to the distdir directory.
|
||||
f77.distdir: f77.rebuilt
|
||||
case "$(LANGUAGES)" in \
|
||||
*[fF]77*) touch lang-f77;; \
|
||||
*) rm -f lang-f77;; \
|
||||
esac
|
||||
-if [ -f lang-f77 ]; then \
|
||||
mkdir tmp/f; \
|
||||
cd f; \
|
||||
for file in *[0-9a-zA-Z+]; do \
|
||||
$(LN_S) $$file ../tmp/f; \
|
||||
done; \
|
||||
fi
|
||||
|
||||
#
|
||||
# .o: .h dependencies.
|
||||
|
@ -1,9 +0,0 @@
|
||||
\input texinfo @c -*-texinfo-*-
|
||||
@c %**start of header
|
||||
@setfilename INSTALL
|
||||
@c %**end of header
|
||||
|
||||
@c This tells g77install.texi that it's generating just the INSTALL file.
|
||||
@set DOC-INSTALL
|
||||
@include g77install.texi
|
||||
@bye
|
@ -1,15 +0,0 @@
|
||||
@setfilename INSTALL
|
||||
@set INSTALLONLY
|
||||
|
||||
@c This file itself, install1.texi, does not appear in the GCC distribution.
|
||||
@c The immediately following lines apply to the INSTALL file
|
||||
@c which is generated using this file.
|
||||
This file documents the installation of the GNU compiler.
|
||||
Copyright (C) 1988, 1989, 1992, 1994, 1995 Free Software Foundation, Inc.
|
||||
You may copy, distribute, and modify it freely as long as you preserve
|
||||
this copyright notice and permission notice.
|
||||
|
||||
@node Installation,,, (dir)
|
||||
@chapter Installing GNU CC
|
||||
@include install.texi
|
||||
@bye
|
@ -1,3 +1,7 @@
|
||||
2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* Make-lang.in (java.distdir): Remove.
|
||||
|
||||
2000-11-03 Tom Tromey <tromey@cygnus.com>
|
||||
|
||||
* Make-lang.in (java.dvi): New target.
|
||||
|
@ -29,7 +29,7 @@
|
||||
# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap,
|
||||
# foo.info, foo.dvi,
|
||||
# foo.install-normal, foo.install-common, foo.install-info, foo.install-man,
|
||||
# foo.uninstall, foo.distdir,
|
||||
# foo.uninstall,
|
||||
# foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean,
|
||||
# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
|
||||
#
|
||||
@ -210,17 +210,6 @@ java.stage3: stage3-start
|
||||
-mv java/*$(objext) stage3/java
|
||||
java.stage4: stage4-start
|
||||
-mv java/*$(objext) stage4/java
|
||||
#
|
||||
# Maintenance hooks:
|
||||
|
||||
# This target creates the files that can be rebuilt, but go in the
|
||||
# distribution anyway. It then copies the files to the distdir directory.
|
||||
java.distdir: java/parse.c java/hash.h
|
||||
mkdir tmp/java
|
||||
cd java; \
|
||||
for file in *[0-9a-zA-Z+]; do \
|
||||
ln $$file ../tmp/java >/dev/null 2>&1 || cp $$file ../tmp/java; \
|
||||
done
|
||||
|
||||
#
|
||||
# .o:.h dependencies.
|
||||
|
@ -24,7 +24,7 @@
|
||||
# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap,
|
||||
# foo.info, foo.dvi,
|
||||
# foo.install-normal, foo.install-common, foo.install-info, foo.install-man,
|
||||
# foo.uninstall, foo.distdir,
|
||||
# foo.uninstall,
|
||||
# foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean,
|
||||
# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
|
||||
#
|
||||
@ -141,15 +141,3 @@ objc.stage3: stage3-start
|
||||
objc.stage4: stage4-start
|
||||
-mv objc/*$(objext) stage4/objc
|
||||
-mv cc1obj$(exeext) stage4
|
||||
|
||||
#
|
||||
# Maintenance hooks:
|
||||
|
||||
# This target creates the files that can be rebuilt, but go in the
|
||||
# distribution anyway. It then copies the files to the distdir directory.
|
||||
objc.distdir: $(srcdir)/objc/objc-parse.c
|
||||
mkdir tmp/objc
|
||||
cd objc; \
|
||||
for file in *[0-9a-zA-Z+]; do \
|
||||
ln $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user