Commit 0968e7fa by Joseph Myers Committed by Joseph Myers

* doc/install-old.texi: Remove VMS documentation.

From-SVN: r73223
parent 20af77cd
2003-11-03 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/install-old.texi: Remove VMS documentation.
2003-11-03 Jan Hubicka <jh@suse.cz> 2003-11-03 Jan Hubicka <jh@suse.cz>
* i386.c (override_options): Remove hack enabling 128bit long double * i386.c (override_options): Remove hack enabling 128bit long double
......
...@@ -22,12 +22,10 @@ main manual. ...@@ -22,12 +22,10 @@ main manual.
@menu @menu
* Configurations:: Configurations Supported by GCC. * Configurations:: Configurations Supported by GCC.
* Cross-Compiler:: Building and installing a cross-compiler. * Cross-Compiler:: Building and installing a cross-compiler.
* VMS Install:: See below for installation on VMS.
@end menu @end menu
@end ifnothtml @end ifnothtml
Here is the procedure for installing GCC on a GNU or Unix system. Here is the procedure for installing GCC on a GNU or Unix system.
See @ref{VMS Install}, for VMS systems.
@enumerate @enumerate
@item @item
...@@ -197,16 +195,8 @@ files @file{m68k.md}, @file{local.h}, @file{m68k.c}, ...@@ -197,16 +195,8 @@ files @file{m68k.md}, @file{local.h}, @file{m68k.c},
@file{xm-local.h}, @file{t-local}, and @file{x-local}, all in the @file{xm-local.h}, @file{t-local}, and @file{x-local}, all in the
directory @file{config/m68k}. directory @file{config/m68k}.
Here is a list of configurations that have special treatment or special
things you must know:
@table @samp
@item vax-dec-vms
See @ref{VMS Install}, for details on how to install GCC on VMS@.
@end table
@ifnothtml @ifnothtml
@node Cross-Compiler, VMS Install, Configurations, Old @node Cross-Compiler, , Configurations, Old
@section Building and Installing a Cross-Compiler @section Building and Installing a Cross-Compiler
@end ifnothtml @end ifnothtml
@html @html
...@@ -467,247 +457,3 @@ whether you compile it on a 68030 or with a cross-compiler on a 386, you ...@@ -467,247 +457,3 @@ whether you compile it on a 68030 or with a cross-compiler on a 386, you
must specify a 68030 as the host when you configure it. must specify a 68030 as the host when you configure it.
To install the cross-compiler, use @samp{make install}, as usual. To install the cross-compiler, use @samp{make install}, as usual.
@ifnothtml
@node VMS Install, , Cross-Compiler, Old
@section Installing GCC on VMS
@end ifnothtml
@html
<h2>@anchor{VMS Install}Installing GCC on VMS</h2>
@end html
@cindex VMS installation
@cindex installing GCC on VMS
The VMS version of GCC is distributed in a backup saveset containing
both source code and precompiled binaries.
To install the @file{gcc} command so you can use the compiler easily, in
the same manner as you use the VMS C compiler, you must install the VMS CLD
file for GCC as follows:
@enumerate
@item
Define the VMS logical names @samp{GNU_CC} and @samp{GNU_CC_INCLUDE}
to point to the directories where the GCC executables
(@file{gcc-cpp.exe}, @file{gcc-cc1.exe}, etc.) and the C include files are
kept respectively. This should be done with the commands:
@smallexample
$ assign /system /translation=concealed -
disk:[gcc.] gnu_cc
$ assign /system /translation=concealed -
disk:[gcc.include.] gnu_cc_include
@end smallexample
@noindent
with the appropriate disk and directory names. These commands can be
placed in your system startup file so they will be executed whenever
the machine is rebooted. You may, if you choose, do this via the
@file{GCC_INSTALL.COM} script in the @file{[GCC]} directory.
@item
Install the @file{GCC} command with the command line:
@smallexample
$ set command /table=sys$common:[syslib]dcltables -
/output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc
$ install replace sys$common:[syslib]dcltables
@end smallexample
@item
To install the help file, do the following:
@smallexample
$ library/help sys$library:helplib.hlb gcc.hlp
@end smallexample
@noindent
Now you can invoke the compiler with a command like @samp{gcc /verbose
file.c}, which is equivalent to the command @samp{gcc -v -c file.c} in
Unix.
@end enumerate
If you wish to use GNU C++ you must first install GCC, and then
perform the following steps:
@enumerate
@item
Define the VMS logical name @samp{GNU_GXX_INCLUDE} to point to the
directory where the preprocessor will search for the C++ header files.
This can be done with the command:
@smallexample
$ assign /system /translation=concealed -
disk:[gcc.gxx_include.] gnu_gxx_include
@end smallexample
@noindent
with the appropriate disk and directory name. If you are going to be
using a C++ runtime library, this is where its install procedure will install
its header files.
@item
Obtain the file @file{gcc-cc1plus.exe}, and place this in the same
directory that @file{gcc-cc1.exe} is kept.
The GNU C++ compiler can be invoked with a command like @samp{gcc /plus
/verbose file.cc}, which is equivalent to the command @samp{g++ -v -c
file.cc} in Unix.
@end enumerate
We try to put corresponding binaries and sources on the VMS distribution
tape. But sometimes the binaries will be from an older version than the
sources, because we don't always have time to update them. (Use the
@samp{/version} option to determine the version number of the binaries and
compare it with the source file @file{version.c} to tell whether this is
so.) In this case, you should use the binaries you get to recompile the
sources. If you must recompile, here is how:
@enumerate
@item
Execute the command procedure @file{vmsconfig.com} to set up the files
@file{tm.h}, @file{config.h}, @file{aux-output.c}, and @file{md.}, and
to create files @file{tconfig.h} and @file{bconfig.h}. This procedure
also creates several linker option files used by @file{make-cc1.com} and
a data file used by @file{make-l2.com}.
@smallexample
$ @@vmsconfig.com
@end smallexample
@item
Setup the logical names and command tables as defined above. In
addition, define the VMS logical name @samp{GNU_BISON} to point at the
to the directories where the Bison executable is kept. This should be
done with the command:
@smallexample
$ assign /system /translation=concealed -
disk:[bison.] gnu_bison
@end smallexample
You may, if you choose, use the @file{INSTALL_BISON.COM} script in the
@file{[BISON]} directory.
@item
Install the @samp{BISON} command with the command line:
@smallexample
$ set command /table=sys$common:[syslib]dcltables -
/output=sys$common:[syslib]dcltables -
gnu_bison:[000000]bison
$ install replace sys$common:[syslib]dcltables
@end smallexample
@item
Type @samp{@@make-gcc} to recompile everything, or submit the file
@file{make-gcc.com} to a batch queue. If you wish to build the GNU C++
compiler as well as the GCC compiler, you must first edit
@file{make-gcc.com} and follow the instructions that appear in the
comments.
@item
In order to use GCC, you need a library of functions which GCC compiled code
will call to perform certain tasks, and these functions are defined in the
file @file{libgcc2.c}. To compile this you should use the command procedure
@file{make-l2.com}, which will generate the library @file{libgcc2.olb}.
@file{libgcc2.olb} should be built using the compiler built from
the same distribution that @file{libgcc2.c} came from, and
@file{make-gcc.com} will automatically do all of this for you.
To install the library, use the following commands:
@smallexample
$ library gnu_cc:[000000]gcclib/delete=(new,eprintf)
$ library gnu_cc:[000000]gcclib/delete=L_*
$ library libgcc2/extract=*/output=libgcc2.obj
$ library gnu_cc:[000000]gcclib libgcc2.obj
@end smallexample
The first command simply removes old modules that will be replaced with
modules from @file{libgcc2} under different module names. The modules
@code{new} and @code{eprintf} may not actually be present in your
@file{gcclib.olb}---if the VMS librarian complains about those modules
not being present, simply ignore the message and continue on with the
next command. The second command removes the modules that came from the
previous version of the library @file{libgcc2.c}.
Whenever you update the compiler on your system, you should also update the
library with the above procedure.
@item
You may wish to build GCC in such a way that no files are written to the
directory where the source files reside. An example would be the when
the source files are on a read-only disk. In these cases, execute the
following DCL commands (substituting your actual path names):
@smallexample
$ assign dua0:[gcc.build_dir.]/translation=concealed, -
dua1:[gcc.source_dir.]/translation=concealed gcc_build
$ set default gcc_build:[000000]
@end smallexample
@noindent
where the directory @file{dua1:[gcc.source_dir]} contains the source
code, and the directory @file{dua0:[gcc.build_dir]} is meant to contain
all of the generated object files and executables. Once you have done
this, you can proceed building GCC as described above. (Keep in mind
that @file{gcc_build} is a rooted logical name, and thus the device
names in each element of the search list must be an actual physical
device name rather than another rooted logical name).
@item
@strong{If you are building GCC with a previous version of GCC,
you also should check to see that you have the newest version of the
assembler}. In particular, GCC version 2 treats global constant
variables slightly differently from GCC version 1, and GAS version
1.38.1 does not have the patches required to work with GCC version 2.
If you use GAS 1.38.1, then @code{extern const} variables will not have
the read-only bit set, and the linker will generate warning messages
about mismatched psect attributes for these variables. These warning
messages are merely a nuisance, and can safely be ignored.
@item
If you want to build GCC with the VAX C compiler, you will need to
make minor changes in @file{make-cccp.com} and @file{make-cc1.com}
to choose alternate definitions of @code{CC}, @code{CFLAGS}, and
@code{LIBS}. See comments in those files. However, you must
also have a working version of the GNU assembler (GNU as, aka GAS) as
it is used as the back end for GCC to produce binary object modules
and is not included in the GCC sources. GAS is also needed to
compile @file{libgcc2} in order to build @file{gcclib} (see above);
@file{make-l2.com} expects to be able to find it operational in
@file{gnu_cc:[000000]gnu-as.exe}.
To use GCC on VMS, you need the VMS driver programs
@file{gcc.exe}, @file{gcc.com}, and @file{gcc.cld}. They are
distributed with the VMS binaries (@file{gcc-vms}) rather than the
GCC sources. GAS is also included in @file{gcc-vms}, as is Bison.
Once you have successfully built GCC with VAX C, you should use the
resulting compiler to rebuild itself. Before doing this, be sure to
restore the @code{CC}, @code{CFLAGS}, and @code{LIBS} definitions in
@file{make-cccp.com} and @file{make-cc1.com}. The second generation
compiler will be able to take advantage of many optimizations that must
be suppressed when building with other compilers.
@end enumerate
Under previous versions of GCC, the generated code would occasionally
give strange results when linked with the sharable @file{VAXCRTL} library.
Now this should work.
Even with this version, however, GCC itself should not be linked with
the sharable @file{VAXCRTL}. The version of @code{qsort} in
@file{VAXCRTL} has a bug (known to be present in VMS versions V4.6
through V5.5) which causes the compiler to fail.
The executables are generated by @file{make-cc1.com} and
@file{make-cccp.com} use the object library version of @file{VAXCRTL} in
order to make use of the @code{qsort} routine in @file{gcclib.olb}. If
you wish to link the compiler executables with the shareable image
version of @file{VAXCRTL}, you should edit the file @file{tm.h} (created
by @file{vmsconfig.com}) to define the macro @code{QSORT_WORKAROUND}.
@code{QSORT_WORKAROUND} is always defined when GCC is compiled with
VAX C, to avoid a problem in case @file{gcclib.olb} is not yet
available.
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