3 @c This file may require a nonstandard texinfo.tex to format; if you
5 @setfilename SOLARIS2.info
7 @c This file describes a Cygnus Solaris Release (Developer's Kit).
9 @c Copyright (C) 1991, 1992 Cygnus Support
10 @c This text may be freely distributed under the terms of the GNU
11 @c General Public License.
16 @c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
17 @c implements Cygnus modifications to the texinfo manual style.
19 @c The include file "smpklug.texi" is a kluge to deal with local
20 @c document production issues at Cygnus; it's safe to comment out this
21 @c line if you don't have (or don't want) the file.
26 @settitle Release Notes
35 @item Cygnus Support Developer's Kit
36 @item Release 1.0 for Solaris-2
38 @author Cygnus Support
42 \def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
43 \xdef\Rmanvers{{\it Release Notes (Solaris-2 Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
44 {\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
45 \TeX{}info \texinfoversion\par }
46 \global\def\manvers{Solaris-2 Rel 1.0}
49 @vskip 0pt plus 1filll
50 This product includes software developed by the University of
51 California, Berkeley and its contributors.
53 This note is copyright @copyright{} 1992 Cygnus Support
55 Permission is granted to make and distribute verbatim copies of
56 this manual provided the copyright notice and this permission notice
57 are preserved on all copies.
59 Permission is granted to copy and distribute modified versions of this
60 manual under the conditions for verbatim copying, provided also that
61 the entire resulting derived work is distributed under the terms of a
62 permission notice identical to this one.
64 Permission is granted to copy and distribute translations of this manual
65 into another language, under the above conditions for modified versions.
69 @c PROOFREADING: set FIXMES to include FIXME text in formatted
75 @top Solaris-2 Developer's Kit release 1.0
78 * Introduction:: Overview
79 * Contributors:: GCC for Solaris-2 exists thanks to these people
80 * Versions:: Closest FSF Versions
81 * New:: New in This Release
82 * Limits:: Limitations and Warnings
85 This product includes software developed by the University of
86 California, Berkeley and its contributors.
88 This file is copyright @copyright{} 1992 Cygnus Support
90 Permission is granted to make and distribute verbatim copies of
91 this manual provided the copyright notice and this permission notice
92 are preserved on all copies.
94 Permission is granted to copy and distribute modified versions of this
95 manual under the conditions for verbatim copying, provided also that
96 the entire resulting derived work is distributed under the terms of a
97 permission notice identical to this one.
99 Permission is granted to copy and distribute translations of this manual
100 into another language, under the above conditions for modified versions
107 @item Cygnus Support Developer's Kit
108 @item Solaris-2 Release 1.0
111 Sun has unbunded its compilers---selling them separately from the
112 Solaris 2.0 operating system. Many Sun users were unhappy that their
113 next upgrade might take away their C compiler.
115 In response, Cygnus Support ported the GNU C compiler and supporting
116 tools to Solaris 2.0. The result is a full set of development
117 tools---ANSI and traditional C compiler (with supporting libraries),
118 debugger, parser generator, and lexical analyzer generator---freely
119 available to everyone.
121 The GNU C compiler can be used to compile any kind of program: public
122 domain, copyleft, or proprietary. Your binaries have the same
123 copyright status as your sources and libraries. The only provision of
124 the GNU General Public License that applies to users of the compiler
125 (as opposed to people who make copies of the compiler, or modify it)
126 is the lack of warranty (section 11 and 12). FSF does not provide a
127 warranty to anyone, but Cygnus gives a 1-year limited warranty (a year
128 of support) to customers.
131 @chapter Contributors to GNU C for Solaris-2
133 Cygnus Support and the FSF are grateful to the forward-looking individuals and
134 organizations that sponsored this project.
137 We are glad to be able to thank publicly:
141 Amoco Production Company (Houston, Texas)
144 BBN Communications (Cambridge, Massachusetts)
147 Boston Technology (Wakefield, Massachusetts)
150 Cirrus Logic (Fremont, California)
153 Compaq Computer Corporation (Houston, Texas)
156 Deere & Company (Moline, Illinois)
159 ELF Commnuications (San Francisco, California)
162 European Computer-Industry Research Centre GMBH (Munich)
165 Fidelity Investments (Boston, Massachusetts)
168 FTP Software, Inc. (Wakefield, Massachusetts)
171 Gallagher & Robertson (Oslo, Norway)
174 GTE Laboratories (Waltham, Massachusetts)
177 Ingres Corporation (Alameda, California)
180 Inland Sea (Dexter, Michigan)
183 Los Alamos National Laboratory (Los Alamos, New Mexico)
186 Miller/Howard Investures (Cobleskill, New York)
189 MIT Lincoln Laboratory (Lexington, Massachusetts)
192 NASA Lewis Research Center (Cleveland, Ohio)
195 Optimation Software (Melbourne, Australia)
201 Philips Laboratories (Briarcliff Manor, New York)
204 Pure Software (Los Altos, California)
207 Qualix Group, Inc. (San Mateo, California)
210 Schlumberger-Doll Research (Ridgefield, Connecticut)
213 Kevin Sheehan (Melbourne, Australia and elsewhere)
216 State University of New York (SUNY) at Buffalo
219 SunSoft, Inc. (Mountain View, California)
223 Technische Universit\"at M\"unchen (Munich)
226 Technische Universitaet Muenchen (Munich)
230 Telecom Finland (Helsinki)
233 Telecom Research Labs (Victoria, Australia)
236 Union Bank of Switzerland (Zurich)
238 @item University of Pennsylvania (Philadelphia)
241 University of Washington (Seattle)
244 UUNET Technologies, Inc. (Falls Church, Virginia)
247 Warwick University (Coventry, England)
250 Xerox Palo Alto Research Center (Palo Alto, California)
253 We are also grateful to six other organizations and individuals who
254 contributed to this project, but prefer to remain anonymous.
257 @chapter Closest FSF Versions
259 Cygnus Support devotes much of its effort to integrating and improving
260 free software. In fact, Cygnus employees are the primary developers
261 of several important components of the GNU tool-chain (on behalf of
262 the Free Software Foundation). However, especially for programs whose
263 FSF releases are issued elsewhere, our releases are often slightly
264 ahead of the nearest corresponding FSF version (and sometimes slightly
265 behind it). We reintegrate our sources with the FSF as frequently as
266 possible without compromising the stability of the integrated
269 These are the nearest corresponding FSF releases of the GNU development
274 @emph{Last merged with FSF version}
276 2.0 (but many improvements from 2.1 and 2.2 incorporated)
279 4.6 (maintained at Cygnus)
284 @chapter New in This Release
288 Near command-line compatibility with the SVID specification for
289 @code{cc}, and with the SVr4 @code{cc}. ELF output (with embedded
290 @code{stabs} format debugging information; this is compatible with Sun's
291 compilers). Many bug-fixes (from the base FSF level, and from our
292 Progressive--920318 release for SunOS).
295 New directive @code{#assert}; you can use this directive, together with
296 enhancements to @code{#if}, to declare and test for particular system
300 GDB understands the debugging format used by Solaris-2 compilers (both
301 ours and Sun's): @code{stabs} debugging information embedded in ELF
304 Since our Progressive--920318 release for SunOS, we have also made these
309 GDB now uses a new memory manager called @code{mmalloc}, an enhancement
310 of @sc{GNU} @code{malloc}. It can greatly speed up the startup of GDB
311 by using a pre-parsed symbol table in a @code{mmalloc}-managed heap.
312 Since memory-mapped files are available on Solaris-2 through the @code{mmap}
313 system call, you can have GDB write the symbols from your program into a
317 Release 1.0 for Solaris 2 includes @code{flex}, the fast lexical analyzer
318 generator, and @code{byacc}, the parser generator---both from UC
319 Berkeley. There are no restrictions on what use you can make of lexical
320 analyzers generated by @code{flex}, or parser generators built by
323 Since @code{flex} and @code{byacc} are of interest only to a specialized
324 audience, we ship only on-line documentation for them.
325 @inforef{Top,,flex.info}, or the @code{man} pages @samp{flex.1} and
328 @item Problem Reports
329 The script @code{install_cid} is now available to record your Cygnus
330 customer ID for the problem-reporting utility, @code{send_pr}, on your
333 A blank Problem Report form is now included in the @cite{Introduction}
334 to your Developer's Kit manuals, in case FAX is more convenient than
335 electronic mail to send us problem reports.
337 Since these programs are free software, many people who receive them
338 will not get them directly from Cygnus Support. We will be glad to
339 support you no matter where you got the software. If you have not yet
340 bought support from Cygnus for this set of tools, you can call us at
341 @w{+1 415 322 3811} for a support contract, and start reporting problems
346 @chapter Limitations and Warnings
348 Our major goals in this release was compatibility: with the System V
349 Interface Definition (@sc{svid}), with other Solaris-2 tools, and with
350 the @sc{sparc} Application Binary Interface (@sc{abi}).
352 We have been largely successful: our toolchain complies with the
353 @sc{svid} specifications for compilation tools, most of the tools are
354 also command-line compatible with the Sun offerings (even in cases where
355 these go beyond the @sc{svid}), and we know of only one violation of the
358 The following sections give details on the few remaining compatibility
362 * gcc-options:: Some Solaris-2 cc options not accepted
363 * cc-gdb:: Using gdb on Sun compiler output
364 * long double:: The long double datatype violates the ABI
365 * ABI:: No independent verification of ABI compliance
369 @section Some Solaris-2 @code{cc} options are not accepted
371 In porting the @sc{gnu} C compiler to Solaris-2, we wanted to have
372 command-line compatibility with several compilers:
376 @sc{svid} specification for @code{cc}
379 Other @sc{gcc} configurations
382 Unix SVr4 implementation of @code{cc}
385 Sun compiler for Solaris-2
390 Unfortunately, these specifications are not altogether compatible; we
391 have compromised in some areas, giving the most weight to the @sc{svid}
392 specification and to @sc{gcc} on other platforms.
394 Here is a list of command line options @emph{not} accepted by
395 @code{gcc}, but meaningful in one of the other command-line
396 specifications listed:
401 Use @samp{-static} or @samp{-symbolic} instead. (@samp{-Bstatic} and
402 @samp{-Bdynamic} are supported by Sun compilers, but are not in the
407 These Solaris-2 linker options conflict with @sc{gcc} debugging options.
408 Again, use @samp{-symbolic} or @samp{-static} instead; or pass the
409 linker options directly to the linker using @samp{-Xlinker} or
413 @sc{gcc} has a large family of options that begin with @samp{-f}. All
414 of these options are supported as in other versions of @sc{gcc}. The
415 SVr4 specification describes this option as accepted, but ignored; in
416 the @sc{svid}, it is used to specify floating-point emulation.
419 This SVr4 option appears to specify linking against a special-purpose
420 subroutine library. It is not in the @sc{svid}, and @sc{gcc} does not
424 @sc{gcc} does not support @samp{-K}. To specify position-independent
425 code output, use @samp{-pic}.
428 This preprocessor option retains its usual @sc{gcc} meaning, which is
429 slightly different from the @sc{svid} and SVr4 descriptions (which are
430 not quite identical with one another). It is used to generate
431 preprocessor output---similar to @samp{-E}, but without embedding
432 @code{#line} directives. However, for @sc{gcc}, the output still goes
433 to @file{stdout} rather than to a @samp{.i} file. To place output in a
434 @samp{.i} file, use command-line output redirection.
437 This option is defined as implementation-specific by the @sc{svid}.
438 This implementation does not include it.
441 Displays version information for @emph{only} the assembler and linker.
444 Displays the full invocation of each compiler pass, as usual for
445 @sc{gcc}. This option is not defined in the @sc{svid}, but the SVr4
446 documentation describes it as similar to the @sc{gcc} options
447 @samp{-pedantic} or @samp{-pedantic-errors}. We recommend using those
452 In this implementation, @samp{-W} and @samp{Y} are restricted to
453 controlling the assembler and linker (the other compiler passes used by
454 @sc{gcc} do not exactly correspond to those in the @sc{svid}).
457 This option is not in the @sc{svid}, but is used in SVr4 to give a
458 little control over the dialect of C. For this purpose, you can use the
459 standard @sc{gcc} options @samp{-traditional}, @samp{-ansi}, or the
460 other options described in @ref{Dialect Options,,Options Controlling
461 Dialect, usegcc.info, Using gcc}.
464 For full descriptions of the @sc{gcc} command line options in this
465 release, see the manual @cite{Using gcc}, or the man page @code{gcc.1}.
468 @section Using @code{gdb} on Sun Compiler Output
470 By default, the Sun compiler @code{cc} and the system assembler
471 @code{as} omit debugging information from the final linked output file,
472 assuming the debugger will look in the @samp{.o} files for this
473 information. @code{gdb} will not do this. If you have the Sun compiler
474 @code{cc} and want to debug its output with @code{gdb}, you must include
475 the command-line flag @samp{-xs} when you run @code{cc}, to instruct it
476 to place debugging information where it will be copied to the linked
477 output file. Similarly, if you call the system assembler @code{as}
478 directly, use its command-line option @samp{-s} for the same purpose.
481 @section The @code{long double} datatype violates SPARC ABI
483 The @sc{sparc} Application Binary Interface (@sc{abi}) specifies that
484 numbers of type @code{long double} take up 16 bytes. In this release,
485 @code{gcc} only emits 8-byte numbers for @code{long double}.
487 This is the only known violation of the @sc{abi}. We will fix this
488 problem in a future release.
491 @section No independent verification of ABI compliance
493 We have made every effort to comply with the @sc{sparc} @sc{abi}, and we
494 are aware of only one violation (noted above). However, there is as yet
495 no independent verification of our compiler's compliance.
497 @sc{sparc} International is preparing an ABI compliance test suite, but
498 it won't be available until sometime in the autumn of 1992. We will
499 seek verification of our compiler's compliance as soon as @sc{sparc}
500 International is ready.