Subversion Repositories Open64

[/] [trunk/] [README.Pro64.src] - Blame information for rev 1540

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1540 laijx
README.Pro64.src
2
-----------------------------------------------------------------------
3
NOTICE: This is the README.src file for SGI Pro64(TM) compiler.
4
        SGI Pro64 compiler is the ancestor of the Open64 compiler.
5
-----------------------------------------------------------------------
6
 
7
This document contains information about installing and building
8
the SGI Pro64 compiler source release.
9
 
10
Installation Information
11
 
12
Untar the tar file that you downloaded from the ftp site:
13
 
14
  % cd installation_directory
15
  % gunzip pro64-0.01.0-13-sources.tar.gz
16
  % tar xvf pro64-0.01.0-13-sources.tar
17
 
18
HOW TO BUILD
19
 
20
Prerequisites:
21
 
22
We used the following version of gcc to compile the binaries
23
include in our rpm:
24
 
25
   gcc version 2.96 19991114 (experimental)
26
 
27
We also used g77 for compiling parts of the Fortran 90
28
front-end. The version that we used was:
29
 
30
   GNU F77 version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
31
   (i386-redhat)
32
 
33
For this release we have not verified the build with
34
gcc version 2.95 19990728 (release).
35
 
36
 
37
You will also need to install the NUE environment in order to build
38
IA64 libraries. Information about NUE can be found at:
39
 
40
       http://www.software.hp.com/ia64linux
41
 
42
We used our own sgicc and sgif90 compilers to
43
build the IA-64 libraries. You will need to install those
44
from the sgicc rpm under the NUE environment.
45
 
46
 
47
Installing the pro64 RPMs
48
 
49
You need to install the pro64 rpm from the nue environment.
50
Note that the nue command will put you under your home
51
directory in NUE, which may not be your regular home
52
directory. You should move the pro64 rpm and osprey
53
source tree to a directory that is accessible under NUE.
54
 
55
To install the pro64 rpm do the following:
56
 
57
  %su
58
  #nue
59
  #rpm -i --force --nodeps pro64-0.01.0-13.ia64.rpm
60
 
61
The --nodeps flag is needed because the installation
62
under NUE only sees files installed under NUE. It does
63
not see the files installed from the NUE rpm.
64
 
65
To remove it:
66
 
67
  #rpm -e --nodeps pro64
68
 
69
To update it:
70
 
71
  #rpm -U --force --nodeps pro64-0.01.0-13.ia64.rpm
72
 
73
You can verify your installation by doing a simple
74
hello world test under NUE:
75
 
76
  %cat hello.c
77
  #include <stdio.h>
78
 
79
  main()
80
  {
81
     printf("hello world\n");
82
  }
83
 
84
  %sgicc hello.c
85
  %./a.out
86
  hello world
87
  %
88
 
89
 
90
Doing the Build
91
 
92
Before doing the build make sure you have permissions
93
in the tree where you will be doing the builds. You
94
can do this by:
95
 
96
       %chown -R your_username kpro64
97
 
98
Each of the programs below is included in the rpm
99
that you downloaded from the ftp site. A short description
100
of each rpm entry is provided along with instructions
101
how to build it.
102
 
103
The compilers suite contains CROSS compiler components and IA-64
104
Libraries.
105
 
106
 
107
CROSS compiler components
108
 
109
The following components are CROSS components in that
110
they will be built by IA-32 tools and run on IA-32 platforms
111
but they produce IA-64 code. They are built by doing a make
112
in the corresponding
113
kpro64/targia32_ia64_nodebug directories.
114
 
115
 
116
A sample makefile has been provided for your convenience
117
to build all of the CROSS components listed below.
118
To do a full build of the CROSS components:
119
 
120
          %make build -f Make.cross
121
 
122
NOTE**********************************************
123
 
124
You must NOT be in the NUE environment when running this
125
makefile (Make.cross).
126
 
127
**************************************************
128
 
129
Each component may also be built separately as described
130
below:
131
 
132
==================================================
133
Compiler Drivers
134
 
135
/usr/bin/sgicc  -- C   compiler driver
136
/usr/bin/sgiCC  -- C++ compiler driver
137
/usr/bin/sgi++  -- C++ compiler driver (alternate name)
138
/usr/bin/sgif90 -- Fortran90 compiler driver
139
 
140
These are links to
141
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/driver
142
 
143
To build the driver:
144
% cd kpro64/targia32_ia64_nodebug/driver; gmake
145
 
146
==================================================
147
C Front-End
148
 
149
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/gfec
150
 
151
is the C compiler front-end. We have upgraded it
152
from gcc version 2.95 19990929 to gcc version
153
2.96 20000530.
154
 
155
To build:
156
 
157
% cd kpro64/targia32_ia64_nodebug/gccfe; gmake
158
 
159
==================================================
160
C++ Front-End
161
 
162
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/gfecc
163
 
164
is the C++ compiler front-end. We have upgraded
165
it from g++ version 2.96 20000111 (experimental)
166
to g++ version 2.96 20000605 (experimental).
167
 
168
To build:
169
 
170
% cd kpro64/targia32_ia64_nodebug/g++fe; gmake
171
 
172
==================================================
173
Fortran 90 Front-End
174
 
175
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/mfef90
176
 
177
is the Fortran90 compiler front-end.
178
 
179
And
180
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/cf90.cat
181
 
182
Is the message catalog file for it:
183
 
184
To build:
185
 
186
% cd kpro64/targia32_ia64_nodebug/crayf90; gmake
187
 
188
NOTE: mfef90 does not build at this time because it
189
      needs an IA-32 version of f90 to compile parts
190
      of itself. While SGI has a prototype of such
191
      a compiler, it is good enough only to compile
192
      what is needed and thus we are not making it
193
      available. Mfef90 contains only code
194
      developed by SGI.
195
 
196
==================================================
197
 
198
Backend
199
 
200
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/be
201
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/be.so
202
 
203
are the backend components
204
 
205
To build:
206
 
207
%cd kpro64/targia32_ia64_nodebug/be ; gmake
208
 
209
 
210
==================================================
211
 
212
Code Generator
213
 
214
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/cg.so
215
 
216
is the code generator
217
 
218
To build:
219
%cd kpro64/targia32_ia64_nodebug/cg ; gmake
220
 
221
==================================================
222
 
223
Global Optimizer
224
 
225
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/wopt.so
226
 
227
is the global optimizer. It is invoked when sgicc
228
is run with -O2.
229
 
230
To build:
231
%cd kpro64/targia32_ia64_nodebug/wopt ; gmake
232
 
233
==================================================
234
 
235
Loop Nest Optimizer
236
 
237
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/lno.so
238
 
239
is the loop nest optimizer. It is invoked when
240
sgicc is run with -O3.
241
 
242
To build:
243
%cd kpro64/targia32_ia64_nodebug/lno ; gmake
244
 
245
==================================================
246
 
247
Stand-Alone Inliner
248
 
249
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/inline
250
 
251
is the stand-alone inliner
252
 
253
To build:
254
%cd kpro64/targia32_ia64_nodebug/lw_inline; gmake
255
 
256
(lw_inline is built which is renamed to inline)
257
 
258
==================================================
259
 
260
Interprocedural analysis optimizer
261
 
262
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipa.so
263
 
264
is the interprocedural analysis optimizer
265
 
266
To build:
267
%cd kpro64/targia32_ia64_nodebug/ipa; gmake
268
 
269
==================================================
270
 
271
Interprocedural analysis optimizer (local summary phase)
272
 
273
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipl.so
274
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipl
275
 
276
is the interprocedural analysis optimizer
277
(local summary phase).
278
 
279
To build:
280
%cd kpro64/targia32_ia64_nodebug/ipl; gmake
281
 
282
==================================================
283
 
284
Interprocedural analysis linker driver (ipa_link)
285
 
286
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ipa_link
287
 
288
is the interprocedural analysis linker driver
289
 
290
To build:
291
%cd kpro64/targcygnus_ia32_ia64; ./CONFIGURE ; gmake
292
 
293
ld-new is created under the targcygnus_ia32_ia64/ld
294
directory. It is renamed to ipa_link in the INSTALL
295
script.
296
 
297
==================================================
298
 
299
Itanium(TM) processor target description module
300
 
301
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/itanium.so
302
 
303
is the Itanium(TM) processor target description
304
module.
305
 
306
To build:
307
%cd kpro64/targia32_ia64_nodebug/targ_info; gmake
308
 
309
==================================================
310
 
311
WHIRL (the sgicc intermediate language) to C converter
312
 
313
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2c
314
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2c.so
315
 
316
is the WHIRL (the sgicc intermediate language)
317
to C converter.
318
 
319
To build:
320
%cd kpro64/targia32_ia64_nodebug/whirl2c; gmake
321
 
322
==================================================
323
 
324
WHIRL to Fortran converter
325
 
326
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2f
327
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/whirl2f.so
328
 
329
is the WHIRL (the sgicc intermediate language)
330
to Fortran converter.
331
 
332
 
333
To build:
334
%cd kpro64/targia32_ia64_nodebug/whirl2f; gmake
335
 
336
==================================================
337
 
338
WHIRL to ASCII converter
339
 
340
/usr/local/bin/ir_b2a
341
 
342
is the WHIRL (the sgicc intermediate language)
343
to ASCII converter utility.
344
 
345
To build:
346
%cd kpro64/targia32_ia64_nodebug/ir_tools; gmake
347
 
348
==================================================
349
 
350
 
351
IA64 NATIVE LIBRARIES
352
 
353
 
354
The following components are IA-64 native libraries.
355
in that they will be built by the IA-64 tools. As
356
a result, you must do the builds under the NUE
357
environment.
358
 
359
To run under NUE, you will need to install the NUE
360
environment. Information about NUE can be found at:
361
 
362
     http://www.software.hp.com/ia64linux
363
 
364
 
365
To get into the NUE environment, simply type:
366
 
367
          %nue
368
 
369
A sample makefile has been provided for your convenience
370
to build all of the CROSS components listed below.
371
To do a full build of the CROSS components:
372
 
373
          %make build -f Make.NUE.lib
374
 
375
Each library may also be built separately
376
by doing a make in the corresponding
377
kpro64/targia64 directories as described below.
378
 
379
==================================================
380
/usr/lib/libfortran.a
381
 
382
is the Fortran90 runtime library:
383
 
384
To build:
385
%cd kpro64/targia64/include; gmake
386
%cd kpro64/targia64/libfortran; gmake
387
 
388
==================================================
389
/usr/lib/libffio.a
390
 
391
is the Fast Fortran I/O runtime library:
392
 
393
To build:
394
%cd kpro64/targia64/include; gmake
395
%cd kpro64/targia64/libu; gmake
396
 
397
 
398
==================================================
399
/usr/lib/libmsgi.a
400
 
401
is the SGI math library:
402
 
403
To build:
404
%cd kpro64/targia64/libmsgi; gmake
405
 
406
==================================================
407
/usr/lib/libmv.a
408
 
409
is the SGI math library (vector version):
410
 
411
To build:
412
%cd kpro64/targia64/libmv; gmake
413
 
414
==================================================
415
/usr/lib/libgcc.a
416
 
417
To build:
418
%cd kpro64/targia64/libgcc; gmake
419
 
420
==================================================
421
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/libstdc++.a.2.10.0
422
 
423
To build:
424
%cd kpro64/targia64/libstdc++; gmake
425
 
426
==================================================
427
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/libinstr.a
428
 
429
is the SGI feedback instrumentation library
430
 
431
To build:
432
%cd kpro64/targia64/libinstr; gmake
433
 
434
==================================================
435
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/ftz.o
436
 
437
is the SGI implementation for turning on
438
FLUSH to ZERO
439
 
440
To build:
441
%cd kpro64/targia64/init; gmake
442
 
443
==================================================
444
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/lib.cat
445
/usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/lib.exp
446
 
447
Are already provided under:
448
 
449
kpro64/targia32_ia64_nodebug/temp_f90/libs
450
==================================================
451
==================================================
452
 
453
 
454
 
455
INSTALLING YOUR NEWLY BUILT COMPILER
456
 
457
 
458
An INSTALL script has been provided under kpro64.
459
What it does is install all of the components into their
460
proper locations in the NUE environment after they
461
have been built.
462
 
463
To run it:
464
 
465
NOTE***********************************
466
 
467
Be Extremely CAREFUL using this script
468
as you will be overwriting the files
469
from the rpm's that you installed
470
 
471
***************************************
472
 
473
       # INSTALL
474
 
475
 
476
The spec file for creating the sgicc rpms has also
477
been provided. After you have rebuilt and re-installed
478
the sgicc compilers using the script above, you can
479
create the pro64 rpm by doing:
480
 
481
       # rpm -bb pro64.rpm
482
 
483