aboutsummaryrefslogtreecommitdiff
path: root/sol-rel.texi
blob: c73015abfa2ca5c09c85922c3308afae497beb0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
\input texinfo
@c
@c This file may require a nonstandard texinfo.tex to format; if you
@c need it, please contact Cygnus Support (email editor-in-chief@cygnus.com)
@setfilename SOLARIS2.info
@c
@c This file describes a Cygnus Solaris Release (Developer's Kit).
@c
@c Copyright (C) 1991, 1992 Cygnus Support
@c This text may be freely distributed under the terms of the GNU
@c General Public License.
@c
@c $Id$
@c
@iftex
@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
@c implements Cygnus modifications to the texinfo manual style.
@input texiplus
@c The include file "smpklug.texi" is a kluge to deal with local
@c document production issues at Cygnus; it's safe to comment out this
@c line if you don't have (or don't want) the file.
@input smpklug.texi
@smallbook
@cropmarks
@finalout
@settitle Release Notes
@setchapternewpage on
@c
@end iftex

@titlepage
@title Release Notes
@sp 3
@table @strong
@item Cygnus Support Developer's Kit
@item Release 1.0 for Solaris-2
@end table
@author Cygnus Support
@page

@tex
\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
\xdef\Rmanvers{{\it Release Notes (Solaris-2 Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
{\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
\TeX{}info \texinfoversion\par }
\global\def\manvers{Solaris-2 Rel 1.0}
@end tex

@vskip 0pt plus 1filll
This product includes software developed by the University of
California, Berkeley and its contributors.

This note is copyright @copyright{} 1992 Cygnus Support

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions.

@end titlepage

@c         PROOFREADING: set FIXMES to include FIXME text in formatted
@c         output
@clear FIXMES

@ifinfo
@node Top
@top Solaris-2 Developer's Kit release 1.0

@menu
* Introduction::                Overview
* Contributors::		GCC for Solaris-2 exists thanks to these people
* Versions::                    Closest FSF Versions
* New::                         New in This Release
* Limits::                      Limitations and Warnings
@end menu

This product includes software developed by the University of
California, Berkeley and its contributors.

This file is copyright @copyright{} 1992 Cygnus Support

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions
@end ifinfo

@node Introduction
@chapter Overview

@table @strong
@item Cygnus Support Developer's Kit
@item Solaris-2 Release 1.0
@end table

Sun has unbunded its compilers---selling them separately from the
Solaris 2.0 operating system.  Many Sun users were unhappy that their
next upgrade might take away their C compiler.

In response, Cygnus Support ported the GNU C compiler and supporting
tools to Solaris 2.0.  The result is a full set of development
tools---ANSI and traditional C compiler (with supporting libraries),
debugger, parser generator, and lexical analyzer generator---freely
available to everyone.

The GNU C compiler can be used to compile any kind of program: public
domain, copyleft, or proprietary.  Your binaries have the same
copyright status as your sources and libraries.  The only provision of
the GNU General Public License that applies to users of the compiler
(as opposed to people who make copies of the compiler, or modify it)
is the lack of warranty (section 11 and 12).  FSF does not provide a
warranty to anyone, but Cygnus gives a 1-year limited warranty (a year
of support) to customers.  

@node Contributors
@chapter Contributors to GNU C for Solaris-2

Cygnus Support and the FSF are grateful to the forward-looking individuals and
organizations that sponsored this project.

@noindent
We are glad to be able to thank publicly:

@itemize @bullet
@item
Amoco Production Company (Houston, Texas)

@item
BBN Communications (Cambridge, Massachusetts)

@item
Boston Technology (Wakefield, Massachusetts)

@item
Cirrus Logic (Fremont, California)

@item
Compaq Computer Corporation (Houston, Texas)

@item
Deere & Company (Moline, Illinois)

@item
ELF Commnuications (San Francisco, California)

@item
European Computer-Industry Research Centre GMBH (Munich)

@item
Fidelity Investments (Boston, Massachusetts)

@item
FTP Software, Inc. (Wakefield, Massachusetts)

@item
Gallagher & Robertson (Oslo, Norway)

@item
GTE Laboratories (Waltham, Massachusetts)

@item
Ingres Corporation (Alameda, California)

@item
Inland Sea (Dexter, Michigan)

@item
Los Alamos National Laboratory (Los Alamos, New Mexico)

@item
Miller/Howard Investures (Cobleskill, New York)

@item
MIT Lincoln Laboratory (Lexington, Massachusetts)

@item
NASA Lewis Research Center (Cleveland, Ohio)

@item
Optimation Software (Melbourne, Australia)

@item
PFU Limited (Tokyo)

@item
Philips Laboratories (Briarcliff Manor, New York)

@item
Pure Software (Los Altos, California)

@item
Qualix Group, Inc. (San Mateo, California)

@item
Schlumberger-Doll Research (Ridgefield, Connecticut)

@item
Kevin Sheehan (Melbourne, Australia and elsewhere)

@item
State University of New York (SUNY) at Buffalo

@item
SunSoft, Inc. (Mountain View, California)

@item
@tex
Technische Universit\"at M\"unchen (Munich)
@end tex
@ifinfo
Technische Universitaet Muenchen (Munich)
@end ifinfo

@item
Telecom Finland (Helsinki)

@item
Telecom Research Labs (Victoria, Australia)

@item
Union Bank of Switzerland (Zurich)

@item University of Pennsylvania (Philadelphia)

@item
University of Washington (Seattle)

@item
UUNET Technologies, Inc. (Falls Church, Virginia)

@item
Warwick University (Coventry, England)

@item
Xerox Palo Alto Research Center (Palo Alto, California)
@end itemize

We are also grateful to six other organizations and individuals who
contributed to this project, but prefer to remain anonymous.

@node Versions
@chapter Closest FSF Versions

Cygnus Support devotes much of its effort to integrating and improving
free software.  In fact, Cygnus employees are the primary developers
of several important components of the GNU tool-chain (on behalf of
the Free Software Foundation).  However, especially for programs whose
FSF releases are issued elsewhere, our releases are often slightly
ahead of the nearest corresponding FSF version (and sometimes slightly
behind it).  We reintegrate our sources with the FSF as frequently as
possible without compromising the stability of the integrated
toolchain.

These are the nearest corresponding FSF releases of the GNU development
tools:

@table @sc
@item @emph{Program}
@emph{Last merged with FSF version}
@item gcc
2.0 (but many improvements from 2.1 and 2.2 incorporated)

@item gdb
4.6 (maintained at Cygnus)

@end table

@node New
@chapter New in This Release

@table @strong
@item GCC
Near command-line compatibility with the SVID specification for
@code{cc}, and with the SVr4 @code{cc}.  ELF output (with embedded
@code{stabs} format debugging information; this is compatible with Sun's
compilers).  Many bug-fixes (from the base FSF level, and from our
Progressive--920318 release for SunOS).

@item CPP
New directive @code{#assert}; you can use this directive, together with 
enhancements to @code{#if}, to declare and test for particular system
properties.  

@item GDB
GDB understands the debugging format used by Solaris-2 compilers (both
ours and Sun's): @code{stabs} debugging information embedded in ELF
object files.  

Since our Progressive--920318 release for SunOS, we have also made these
improvements to GDB:

Many bug fixes.

GDB now uses a new memory manager called @code{mmalloc}, an enhancement
of @sc{GNU} @code{malloc}.  It can greatly speed up the startup of GDB
by using a pre-parsed symbol table in a @code{mmalloc}-managed heap.  
Since memory-mapped files are available on Solaris-2 through the @code{mmap}
system call, you can have GDB write the symbols from your program into a
reusable file.

@item FLEX and BYACC
Release 1.0 for Solaris 2 includes @code{flex}, the fast lexical analyzer
generator, and @code{byacc}, the parser generator---both from UC
Berkeley.  There are no restrictions on what use you can make of lexical
analyzers generated by @code{flex}, or parser generators built by
@code{byacc}.

Since @code{flex} and @code{byacc} are of interest only to a specialized
audience, we ship only on-line documentation for them.
@inforef{Top,,flex.info}, or the @code{man} pages @samp{flex.1} and
@samp{byacc.1}.

@item Problem Reports
The script @code{install_cid} is now available to record your Cygnus
customer ID for the problem-reporting utility, @code{send_pr}, on your
system.  

A blank Problem Report form is now included in the @cite{Introduction}
to your Developer's Kit manuals, in case FAX is more convenient than
electronic mail to send us problem reports.

Since these programs are free software, many people who receive them
will not get them directly from Cygnus Support.  We will be glad to
support you no matter where you got the software.  If you have not yet
bought support from Cygnus for this set of tools, you can call us at
@w{+1 415 322 3811} for a support contract, and start reporting problems
and getting fixes.
@end table

@node Limits
@chapter Limitations and Warnings

Our major goals in this release was compatibility: with the System V
Interface Definition (@sc{svid}), with other Solaris-2 tools, and with
the @sc{sparc} Application Binary Interface (@sc{abi}).

We have been largely successful: our toolchain complies with the
@sc{svid} specifications for compilation tools, most of the tools are
also command-line compatible with the Sun offerings (even in cases where
these go beyond the @sc{svid}), and we know of only one violation of the
@sc{abi}.  

The following sections give details on the few remaining compatibility
issues.

@menu
* gcc-options::                 Some Solaris-2 cc options not accepted
* cc-gdb::                      Using gdb on Sun compiler output
* long double::                 The long double datatype violates the ABI
* ABI::                         No independent verification of ABI compliance
@end menu

@node gcc-options
@section Some Solaris-2 @code{cc} options are not accepted

In porting the @sc{gnu} C compiler to Solaris-2, we wanted to have
command-line compatibility with several compilers:

@itemize @bullet
@item
@sc{svid} specification for @code{cc}

@item
Other @sc{gcc} configurations

@item
Unix SVr4 implementation of @code{cc}

@item
Sun compiler for Solaris-2

@end itemize

@noindent
Unfortunately, these specifications are not altogether compatible; we
have compromised in some areas, giving the most weight to the @sc{svid}
specification and to @sc{gcc} on other platforms.

Here is a list of command line options @emph{not} accepted by
@code{gcc}, but meaningful in one of the other command-line
specifications listed:

@table @code
@item -Bstatic
@itemx -Bdynamic
Use @samp{-static} or @samp{-symbolic} instead.  (@samp{-Bstatic} and
@samp{-Bdynamic} are supported by Sun compilers, but are not in the
@sc{svid}.)

@item -dy
@itemx -dn
These Solaris-2 linker options conflict with @sc{gcc} debugging options.
Again, use @samp{-symbolic} or @samp{-static} instead; or pass the
linker options directly to the linker using @samp{-Xlinker} or
@samp{-W}.

@item -f
@sc{gcc} has a large family of options that begin with @samp{-f}.  All
of these options are supported as in other versions of @sc{gcc}.  The
SVr4 specification describes this option as accepted, but ignored; in
the @sc{svid}, it is used to specify floating-point emulation.

@item -J sfm
This SVr4 option appears to specify linking against a special-purpose
subroutine library.  It is not in the @sc{svid}, and @sc{gcc} does not
support it.

@item -K
@sc{gcc} does not support @samp{-K}.  To specify position-independent
code output, use @samp{-pic}.

@item -P
This preprocessor option retains its usual @sc{gcc} meaning, which is
slightly different from the @sc{svid} and SVr4 descriptions (which are
not quite identical with one another).  It is used to generate
preprocessor output---similar to @samp{-E}, but without embedding
@code{#line} directives.  However, for @sc{gcc}, the output still goes
to @file{stdout} rather than to a @samp{.i} file.  To place output in a
@samp{.i} file, use command-line output redirection.

@item -q
This option is defined as implementation-specific by the @sc{svid}.
This implementation does not include it.

@item -V
Displays version information for @emph{only} the assembler and linker.

@item -v
Displays the full invocation of each compiler pass, as usual for
@sc{gcc}.  This option is not defined in the @sc{svid}, but the SVr4
documentation describes it as similar to the @sc{gcc} options
@samp{-pedantic} or @samp{-pedantic-errors}.  We recommend using those
options instead.

@item -W
@itemx -Y
In this implementation, @samp{-W} and @samp{Y} are restricted to
controlling the assembler and linker (the other compiler passes used by
@sc{gcc} do not exactly correspond to those in the @sc{svid}).

@item -X
This option is not in the @sc{svid}, but is used in SVr4 to give a
little control over the dialect of C.  For this purpose, you can use the
standard @sc{gcc} options @samp{-traditional}, @samp{-ansi}, or the
other options described in @ref{Dialect Options,,Options Controlling
Dialect, usegcc.info, Using gcc}.
@end table

For full descriptions of the @sc{gcc} command line options in this
release, see the manual @cite{Using gcc}, or the man page @code{gcc.1}.

@node cc-gdb
@section Using @code{gdb} on Sun Compiler Output

By default, the Sun compiler @code{cc} and the system assembler
@code{as} omit debugging information from the final linked output file,
assuming the debugger will look in the @samp{.o} files for this
information.  @code{gdb} will not do this.  If you have the Sun compiler
@code{cc} and want to debug its output with @code{gdb}, you must include
the command-line flag @samp{-xs} when you run @code{cc}, to instruct it
to place debugging information where it will be copied to the linked
output file.  Similarly, if you call the system assembler @code{as}
directly, use its command-line option @samp{-s} for the same purpose.

@node long double
@section The @code{long double} datatype violates SPARC ABI

The @sc{sparc} Application Binary Interface (@sc{abi}) specifies that
numbers of type @code{long double} take up 16 bytes.  In this release,
@code{gcc} only emits 8-byte numbers for @code{long double}.

This is the only known violation of the @sc{abi}.  We will fix this
problem in a future release.

@node ABI
@section No independent verification of ABI compliance

We have made every effort to comply with the @sc{sparc} @sc{abi}, and we
are aware of only one violation (noted above).  However, there is as yet
no independent verification of our compiler's compliance.

@sc{sparc} International is preparing an ABI compliance test suite, but
it won't be available until sometime in the autumn of 1992.  We will
seek verification of our compiler's compliance as soon as @sc{sparc}
International is ready.

@contents
@bye