代码拉取完成,页面将自动刷新
This document contains information about installing and building
the SGI Pro64 compiler source release.
Installation Information
Untar the tar file that you downloaded from the ftp site:
% cd installation_directory
% gunzip pro64-0.01.0-13-sources.tar.gz
% tar xvf pro64-0.01.0-13-sources.tar
HOW TO BUILD
Prerequisites:
We used the following version of gcc to compile the binaries
include in our rpm:
gcc version 2.96 19991114 (experimental)
We also used g77 for compiling parts of the Fortran 90
front-end. The version that we used was:
GNU F77 version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
(i386-redhat)
For this release we have not verified the build with
gcc version 2.95 19990728 (release).
You will also need to install the NUE environment in order to build
IA64 libraries. Information about NUE can be found at:
http://www.software.hp.com/ia64linux
We used our own sgicc and sgif90 compilers to
build the IA-64 libraries. You will need to install those
from the sgicc rpm under the NUE environment.
Installing the pro64 RPMs
You need to install the pro64 rpm from the nue environment.
Note that the nue command will put you under your home
directory in NUE, which may not be your regular home
directory. You should move the pro64 rpm and osprey
source tree to a directory that is accessible under NUE.
To install the pro64 rpm do the following:
%su
#nue
#rpm -i --force --nodeps pro64-0.01.0-13.ia64.rpm
The --nodeps flag is needed because the installation
under NUE only sees files installed under NUE. It does
not see the files installed from the NUE rpm.
To remove it:
#rpm -e --nodeps pro64
To update it:
#rpm -U --force --nodeps pro64-0.01.0-13.ia64.rpm
You can verify your installation by doing a simple
hello world test under NUE:
%cat hello.c
#include <stdio.h>
main()
{
printf("hello world\n");
}
%sgicc hello.c
%./a.out
hello world
%
Doing the Build
Before doing the build make sure you have permissions
in the tree where you will be doing the builds. You
can do this by:
%chown -R your_username kpro64
Each of the programs below is included in the rpm
that you downloaded from the ftp site. A short description
of each rpm entry is provided along with instructions
how to build it.
The compilers suite contains CROSS compiler components and IA-64
Libraries.
CROSS compiler components
The following components are CROSS components in that
they will be built by IA-32 tools and run on IA-32 platforms
but they produce IA-64 code. They are built by doing a make
in the corresponding
kpro64/targia32_ia64_nodebug directories.
A sample makefile has been provided for your convenience
to build all of the CROSS components listed below.
To do a full build of the CROSS components:
%make build -f Make.cross
NOTE**********************************************
You must NOT be in the NUE environment when running this
makefile (Make.cross).
**************************************************
Each component may also be built separately as described
below:
==================================================
Compiler Drivers
/usr/bin/sgicc -- C compiler driver
/usr/bin/sgiCC -- C++ compiler driver
/usr/bin/sgi++ -- C++ compiler driver (alternate name)
/usr/bin/sgif90 -- Fortran90 compiler driver
These are links to
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/driver
To build the driver:
% cd kpro64/targia32_ia64_nodebug/driver; gmake
==================================================
C Front-End
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/gfec
is the C compiler front-end. We have upgraded it
from gcc version 2.95 19990929 to gcc version
2.96 20000530.
To build:
% cd kpro64/targia32_ia64_nodebug/gccfe; gmake
==================================================
C++ Front-End
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/gfecc
is the C++ compiler front-end. We have upgraded
it from g++ version 2.96 20000111 (experimental)
to g++ version 2.96 20000605 (experimental).
To build:
% cd kpro64/targia32_ia64_nodebug/g++fe; gmake
==================================================
Fortran 90 Front-End
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/mfef90
is the Fortran90 compiler front-end.
And
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/cf90.cat
Is the message catalog file for it:
To build:
% cd kpro64/targia32_ia64_nodebug/crayf90; gmake
NOTE: mfef90 does not build at this time because it
needs an IA-32 version of f90 to compile parts
of itself. While SGI has a prototype of such
a compiler, it is good enough only to compile
what is needed and thus we are not making it
available. Mfef90 contains only code
developed by SGI.
==================================================
Backend
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/be
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/be.so
are the backend components
To build:
%cd kpro64/targia32_ia64_nodebug/be ; gmake
==================================================
Code Generator
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/cg.so
is the code generator
To build:
%cd kpro64/targia32_ia64_nodebug/cg ; gmake
==================================================
Global Optimizer
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/wopt.so
is the global optimizer. It is invoked when sgicc
is run with -O2.
To build:
%cd kpro64/targia32_ia64_nodebug/wopt ; gmake
==================================================
Loop Nest Optimizer
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/lno.so
is the loop nest optimizer. It is invoked when
sgicc is run with -O3.
To build:
%cd kpro64/targia32_ia64_nodebug/lno ; gmake
==================================================
Stand-Alone Inliner
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/inline
is the stand-alone inliner
To build:
%cd kpro64/targia32_ia64_nodebug/lw_inline; gmake
(lw_inline is built which is renamed to inline)
==================================================
Interprocedural analysis optimizer
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipa.so
is the interprocedural analysis optimizer
To build:
%cd kpro64/targia32_ia64_nodebug/ipa; gmake
==================================================
Interprocedural analysis optimizer (local summary phase)
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipl.so
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipl
is the interprocedural analysis optimizer
(local summary phase).
To build:
%cd kpro64/targia32_ia64_nodebug/ipl; gmake
==================================================
Interprocedural analysis linker driver (ipa_link)
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipa_link
is the interprocedural analysis linker driver
To build:
%cd kpro64/targcygnus_ia32_ia64; ./CONFIGURE ; gmake
ld-new is created under the targcygnus_ia32_ia64/ld
directory. It is renamed to ipa_link in the INSTALL
script.
==================================================
Itanium(TM) processor target description module
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/itanium.so
is the Itanium(TM) processor target description
module.
To build:
%cd kpro64/targia32_ia64_nodebug/targ_info; gmake
==================================================
WHIRL (the sgicc intermediate language) to C converter
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2c
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2c.so
is the WHIRL (the sgicc intermediate language)
to C converter.
To build:
%cd kpro64/targia32_ia64_nodebug/whirl2c; gmake
==================================================
WHIRL to Fortran converter
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2f
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2f.so
is the WHIRL (the sgicc intermediate language)
to Fortran converter.
To build:
%cd kpro64/targia32_ia64_nodebug/whirl2f; gmake
==================================================
WHIRL to ASCII converter
/usr/local/bin/ir_b2a
is the WHIRL (the sgicc intermediate language)
to ASCII converter utility.
To build:
%cd kpro64/targia32_ia64_nodebug/ir_tools; gmake
==================================================
IA64 NATIVE LIBRARIES
The following components are IA-64 native libraries.
in that they will be built by the IA-64 tools. As
a result, you must do the builds under the NUE
environment.
To run under NUE, you will need to install the NUE
environment. Information about NUE can be found at:
http://www.software.hp.com/ia64linux
To get into the NUE environment, simply type:
%nue
A sample makefile has been provided for your convenience
to build all of the CROSS components listed below.
To do a full build of the CROSS components:
%make build -f Make.NUE.lib
Each library may also be built separately
by doing a make in the corresponding
kpro64/targia64 directories as described below.
==================================================
/usr/lib/libfortran.a
is the Fortran90 runtime library:
To build:
%cd kpro64/targia64/include; gmake
%cd kpro64/targia64/libfortran; gmake
==================================================
/usr/lib/libffio.a
is the Fast Fortran I/O runtime library:
To build:
%cd kpro64/targia64/include; gmake
%cd kpro64/targia64/libu; gmake
==================================================
/usr/lib/libmsgi.a
is the SGI math library:
To build:
%cd kpro64/targia64/libmsgi; gmake
==================================================
/usr/lib/libmv.a
is the SGI math library (vector version):
To build:
%cd kpro64/targia64/libmv; gmake
==================================================
/usr/lib/libgcc.a
To build:
%cd kpro64/targia64/libgcc; gmake
==================================================
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/libstdc++.a.2.10.0
To build:
%cd kpro64/targia64/libstdc++; gmake
==================================================
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/libinstr.a
is the SGI feedback instrumentation library
To build:
%cd kpro64/targia64/libinstr; gmake
==================================================
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ftz.o
is the SGI implementation for turning on
FLUSH to ZERO
To build:
%cd kpro64/targia64/init; gmake
==================================================
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/lib.cat
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/lib.exp
Are already provided under:
kpro64/targia32_ia64_nodebug/temp_f90/libs
==================================================
==================================================
INSTALLING YOUR NEWLY BUILT COMPILER
An INSTALL script has been provided under kpro64.
What it does is install all of the components into their
proper locations in the NUE environment after they
have been built.
To run it:
NOTE***********************************
Be Extremely CAREFUL using this script
as you will be overwriting the files
from the rpm's that you installed
***************************************
# INSTALL
The spec file for creating the sgicc rpms has also
been provided. After you have rebuilt and re-installed
the sgicc compilers using the script above, you can
create the pro64 rpm by doing:
# rpm -bb pro64.rpm
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。