home *** CD-ROM | disk | FTP | other *** search
- @@@STARTPACK(gcc;Integrated GNU Compilation System)
-
- @@@OSR5DIST(http://www.sco.com/skunkware/osr5/devtools/gcc/)
- @@@UW2DIST(http://www.sco.com/skunkware/uw7/devtools/gcc/)
- @@@SOURCE(ftp://prep.ai.mit.edu/pub/gnu/)
-
- <P>The GNU C Compiler (gcc) is an advanced optimizing compiler for C, C++
- and Objective C. On OpenServer, this version of gcc can generate both
- COFF and ELF binaries from within a single compiler. Use the <TT>-melf</TT>
- flag to turn on ELF mode. By default, the compiler is always in COFF mode.
- On UnixWare, gcc always generates ELF binaries. </P>
-
- <P>On Skunkware 98, the "Gcc" package is an "Integrated GNU C Compilation
- System" containing both the "production quality" GNU C Compiler and the
- experimental EGCS GNU C Compiler from Cygnus. When installing the Gcc package
- off of Skunkware 98, both of these compilers are installed
- and co-exist. By default, the FSF gcc will be used.
- The system wide default can be set in the file /etc/default/gcc by setting
- the PREFERRED_GCC variable to either /usr/local/lib/front-fsf or
- /usr/local/lib/front-egcs. An individual developer can over-ride the system
- wide default by setting and exporting PREFERRED_GCC in her environment.
- <P>
- Skunkware 98 contains gcc version 2.7.2.3 and egcs version 1.0.2.
- Many of the packages contained in Skunkware 98
- were built with the GNU C Compiler.</P>
-
- <P>For the UnixWare compiler (and the OpenServer compiler in ELF mode),
- there are a few switches which developers may be interested in. All of
- these switches are covered in the GCC documentation, this is just a brief
- summary: </P>
-
- <UL>
- <LI><TT>-fPIC</TT> - generate position independent code. This is used when
- creating shared libraries. </LI>
-
- <LI><TT>-shared</TT> - used during linking. This will create a shared library.
- For example, the command <TT>gcc -shared -o libfoo.so *.o</TT> will link
- in all of the object files in the currently directory and correctly construct
- a shared library called <TT>libfoo.so</TT>. When using this option, you
- may want to check the man pages on <TT>ld</TT> for the usage of the <TT>-h</TT>
- and <TT>-Bexport</TT> options. <I>NOTE:</I> in order to pass the <TT>-Bexport</TT>
- flag to the linker, you need to invoke gcc with <TT>gcc -Wl,-Bexport</TT>.
- This is because the <TT>-B</TT> flag has special significance to gcc. The
- <TT>-Wl</TT> flag is used to pass arguments to the linker. Consult the
- gcc documentation for further details. </LI>
-
- <LI><TT>-m486</TT> - turn on 486 specific optimizations. This option will produce
- code which can take advantage of specific 486 instructions, and which result
- in a code speed increase on 486 and later processors. On original 386 processors,
- there is a very negligible speed decrease. The code generated will still
- function properly on the 386. </LI>
- </UL>
-
- <P>On OpenServer release 5.0.4, be careful when invoking gcc as a linker
- if you use gcc specific flags. Be especially careful with mixing gcc specific
- flags when using the <TT>-s</TT> option. This can cause the 5.0.4 linker
- to core dump. For example, the command line <TT>gcc -m486 -fomit-frame-pointer
- -Wall -s -o foo *.o</TT> is bad, whereas the command line <TT>gcc -s -o
- foo *.o</TT> is good. The gcc specific flags <TT>-fomit-frame-pointer -Wall</TT>
- (used only as an example here) confuse the 5.0.4 linker. </P>
-
- <H3>Users of the old GDS (OSR5 only)</H3>
-
- <P>For users of the GDS, <A HREF=http://www.sco.com/skunkware/gds>
- as shipped on Skunkware 96</A>, or for users who have
- downloaded the GDS from the SCO ftp site, life is a little different with
- this release of GCC.Firstly, the <TT>-b elf</TT> flag has been replaced
- with <TT>-melf</TT>. Secondly, the <TT>-K PIC</TT> option has been replaced
- with the <TT>-fPIC</TT> option. This is to ensure compatibility with all
- other version of the GNU C Compiler. Thirdly, no assemblers are provided,
- as described below. </P>
-
- <P>With this release of GCC, no assembler is provided, and the GDS is no
- longer one large package, but rather a collection of smaller packages.
- However, installing all of the tools found in this section of Skunkware
- will be at least the equivalent of the GDS, if not more. For people using
- SCO OpenServer release 5.0.0 or release 5.0.2 who are not licensed development
- system users, you will need to install not only the linkers and libraries
- package, but also the assembler from the development system package.
- #if 0
- For more information on how to do this, click <A HREF="osr5as.html">here</A>.
- #endif
- If you have the SCO OpenServer Development System package installed, you
- do not need to do anything extra in order to use gcc. </P>
-
- <P>For people running OpenServer release 5.0.4 or later, the linkers and
- libraries package already contains the SCO assemblers. For licensed SCO
- OpenServer Development System users, you can safely install gcc and all
- of these development system utilities without impacting your existing installed
- development system at all. </P>
-
- @@@ENDPACK
-
-