Open Source Tool Kit 2.0.3 -- Release Notes

These release notes contain:

Introduction to the OSTK

The Open Source Tool Kit, or OSTK, is an updated, supported release of some open source tools for UnixWare 7, Releases 7.1.1 and 7.1.3 and Open UNIX 8, Release 8.0.

The Open Source Tool Kit is the logical follow-on to the release of open source programs through the Skunkware media and download web site. It contains a set of released open source compilers, object file tools, libraries and other files that can be used to develop, enhance and compile programs for use on The SCO Group, Inc. SVR5 UNIX operating systems.

The Open Source Tool Kit is not meant as a replacement for the UnixWare/OpenServer Development Kit or the Open UNIX Development Kit. It works in conjunction with the UDK, and utilizes the UDK linker, the UDK libraries and system header files or modified header files. Programs produced with these tools utilize the native SVR5 UNIX C runtime and system libraries. The GNU C++ compiler provides and uses its own library. The OSTK is the logical choice when porting code originally developed and compiled with the GNU compilers or when the developers are more familiar with or prefer the GNU compilers and debugger to those in the UDK.

For a discussion of the advantages, limitations and suitability of the UDK or the OSTK to your project needs, read the Guide to Software Development Kits on Caldera Systems" at www.sco.com/developers/products/devkits.html.

If you are interested in keeping up with the latest tools and information about developing software on or for The SCO Group platforms, we invite you to consider the The SCO Group Developer Network. You can join at no cost, and enjoy the benefits of special developer discounts on software and services, access to developer support and product certification services, and other advantages of membership in the The SCO Group developer technical community. For more information, visit the The SCO Group Developer Network web site at www.sco.com/developers.

Supported Platforms

The Open Source Tool Kit is supported on and can be installed on the following platforms:

It is not supported on any UnixWare 7 system prior to UnixWare 7.1.1, but users may, at their discretion, choose to experiment with the OSTK on earlier releases.

GNU C object files can be linked with UDK object files. Unfortunately, the various C++ compilers have different ABIs, and that difference precludes GNU C++ object files and C++ libraries from being successfully linked with UDK C++ object files and libraries.

What is in this OSTK release

While the contents of this OSTK release are modest when compared to the Skunkware releases, it contains the key development tools necessary to develop applications and participate in open source development projects. These tools are the primary tools needed to build many other open source software products.

This release contains the following tools in similarly named packages that are part of the OSTools package set:

Tool Version Description Package Name Space Required
GNU gcc 2.95.3pl1 Compiler collection - gcc, g++ and g77 GNUgcc 45,203 K bytes
GNU binutils 2.10.1 Assembler and object file utilities GNUbinutl 2,413 K bytes
GNU gdb 5.0pl1 GNU debugger GNUgdb 2,540 K bytes
GNU make 3.79.1 Make utility (gmake) GNUmake 925 K bytes
GNU m4 1.4 Macro Processor GNUm4 225 K bytes
GNU gawk 3.0.6 GNU awk text processor GNUgawk 1,115 K bytes
GNU bison 1.28 GNU parser generator (yacc replacement) GNUbison 415 K bytes
GNU texinfo 4.0 Documentation system and browser GNUtexinf 1,447 K bytes
GNU automake 1.4 GNU automake utilities GNUautomk 748 K bytes
GNU autoconf 2.13 GNU autoconf utilities GNUautocf 778 K bytes
flex 2.5.4a fast lexical analyzer generator OSflex 426 K bytes
Total OSTools 56,235 K bytes

Documentation

Each of these tools comes with the documentation and man pages that are part of the source code release. The documentation is viewable with the info command contained in the GNU texinfo package. Additional information available on the web is indicated in the description of each package.

Licensing

The tools in the OSTK are provided under the terms and conditions of one or more of the following copyrights and licenses. A complete copy of these licenses and copyrights will be installed in respectively, as individual packages are installed

GNU gcc Compiler Collection

The GNU compiler collection is the GNU gcc 2.95.3 release containing compilers for C (gcc), C++ (g++ or c++), Fortran 77 (g77) and Objective C (objc) and the supporting runtime.

The OSTK version contains a few additional fixes to correct problems on Open UNIX 8 and UnixWare 7 systems. These corrections include:

The compilers have been configured:

Online information: gcc.gnu.org
Online documentation: gcc.gnu.org/onlinedocs

GNU binutils - Assembler and Object File Utilities

The GNU binutils is a collection of utilities to access and manipulate object files, executable programs and shared objects. It includes:

Most of these programs use the Binary File Descriptor (BFD) library, that is part of this release. The GNU linker has intentionally been omitted from this release to avoid unnecessary or unexpected use of the wrong linker.

Online information: www.gnu.org/software/binutils/binutils.html.
Online documentation: sources.redhat.com/binutils/docs-2.10.

GNU Debugger

The Open Source Tool Kit version of GDB is based on GDB 5.0. The GDB debugger is suitable for the debugging of GCC and UDK generated binaries. It contains fixes specific to Open UNIX 8 and UnixWare 7, primarily proper support for UW7/OU8 core files and essential support of the UDK C++ libraries since UW 7.1.1.

Online information: www.gnu.org/software/gdb/gdb.html and sources.redhat.com/gdb
Online documentation: www.gnu.org/manual/gdb/ or sources.redhat.com/gdb/#documentation

GNU make Utility

The widely used GNU make utility has some additional and handy features beyond the UNIX make that is part of the UDK. The GNU make can also be invoked as gmake.

Online information: www.gnu.org/software/make/make.html
Online documentation: www.gnu.org/manual/make/index.html

GNU Macro Preprocessor

The GNU m4 is an implementation of the traditional UNIX macro processor. It is mostly SVR4 compatible although it has some extensions; please see the info documentation provided or refer to the material available on the web.

Online information: www.gnu.org/software/m4/m4.html
Online documentation: www.gnu.org/manual/m4/index.html

GNU awk Text Processor

This release of GNU Awk 3.0.6 is upwardly compatible with the UNIX SRV5 version of awk. The OSTK executable is installed as gawk to avoid any possible differences that may affect the functionality of existing system command scripts.

Online information: www.gnu.org/software/gawk/gawk.html
Online documentation: www.gnu.org/manual/gawk/index.html

GNU Parser Generator

Bison is a general-purpose parser generator that converts a grammar description for an LALR context-free grammar into a C program to parse that grammar. Bison is upward compatible with yacc; i.e., all properly written yacc grammars ought to work with Bison with no change.

Online information: www.gnu.org/software/bison/bison.html
Online documentation: www.gnu.org/manual/bison/index.html

GNU Documentation Tools and Browser

Texinfo is a documentation system that uses a single source file to produce both online information and printed output. It contains utilities which generate printed manuals, plain ASCII text, and online hypertext documentation (called `Info'), and can read online Info documents that is provided with each package in the OSTK.

Online information: www.gnu.org/software/texinfo/texinfo.html
Online documentation: www.gnu.org/manual/texinfo/index.html

GNU automake Utilities

Automake is a tool for automatically generating Makefile.in files compliant with the published GNU Coding Standards and is useful in building many open source tools.

Online information: www.gnu.org/software/automake/automake.html
Online documentation: www.gnu.org/manual/automake/index.html>

GNU autoconf Utilities

Autoconf is an extensible package of m4 macros that produce shell scripts to automatically configure software source code packages for compilation on different operating systems. It is used in the build processes of many open source tools.

Online information: www.gnu.org/software/autoconf/autoconf.html
Online documentation: www.gnu.org/manual/autoconf/index.html

Fast Lexical Analyzer Generator

Flex is a fast lexical analyzer generator. It is a tool for generating programs that perform pattern matching on text and is used to maintain the compilers.

Online information: www.gnu.org/software/flex/flex.html
Online documentation: www.gnu.org/manual/flex-2.5.4/flex.html

Updates since OSTK 2.0

GNU gcc

GNU binutils

GNU gdb

OSTK Installation Requirements

Complete installation of the OSTK requires approximately 57 Mbytes of disk space on /usr. All OSTK tools and libraries will be installed into /usr/gnu. This is to avoid conflict with other open source applications, typically installed in /usr/local, that you may have or want on your system. The exact disk space requirements of individual packages are shown in the table above.

In addition to permanent disk space requirements, installation will require a similar amount of temporary space in /var/tmp. This should not be an issue on freshly installed UnixWare 7.1.3 and Open Unix 8.0.0 systems. For an upgraded system or installation on a UnixWare 7.1.1 system where /var/tmp is still a relatively small (40 Mbytes default) MEMFS file system, installation may fail. This can be avoided by commenting out the /var/tmp entry in /etc/vfstab and rebooting the system. Following reboot, /var/tmp will actually reside on the root file system (/).

There are also the following dependencies between the packages:

Package Requires the Follow Packages
GNUautcf - autoconf GNUm4 version 1.4
GNUgcc - gcc GNUbinutl 2.10.1
- either UDK 7.1.3. or OUDK 8.0.0
uccs - UDK Optimizing C Compilation System
syshead - System Header File Update
libc, libm and libthread - corresponding OS runtime
- or UDK 7.1.1b Feature Supplement
uccs - UDK Optimizing C Compilation System
sysheadfs - UDK FS System Header Files
libcfs, libmfs and libthreadfs - corresponding feature supplement runtime
- or other UDK 7.x.x
uccs - UDK Optimizing C Compilation System
NOTE: The g++ runtime requires the updated math library that is standard in the UDK 7.1.1b FS and later UDK releases.

Installing the OSTK

  1. Log in as root.

  2. Place the UDK 7.1.3 CD in the CD drive if you have not already done so or download the OSTK 2.0.3 image from the The SCO Group download web site at www.sco.com/download.

  3. You can use the pkgadd(1M) command to install the OSTK packages with the distribution CD mounted or unmounted (you may have mounted the CD to read these Release Notes from the distribution media): Alternatively, you can install the OSTK using the Application Installer utility invoked by the scoadmin(1M) command.

       scoadmin
          ==> Software_Management
             ==> Application Installer
    Within the Application Installer:

       ==> Install from CD-ROM_1
       ==> Update View

       select OSTools

       ==> Install

    If you have downloaded the OSTK 2.0.3 image from the The SCO Group download web site, you can install the OSTK with the pkgadd command

    pkgadd -d /ftp_get_dir/OSTools_203.image

  4. The OSTK set selection menu will display the packages contained in the OSTools set. If you are installing the OSTK on you system for the first time, all packages are selected for installation by default. If this is an upgrade from OSTK 2.0, only those packages previously installed are defaulted to install. If OSTK 2.0.3 has been previously installed, all packages are not selected for default installation.

    Select the packages that you want, deselect packages that you do not want and press Apply on each selection menu presented.

Usage notes

  1. Setting the PATH environment variable.

    To execute the OSTK tools without specifying a complete path name, /usr/gnu/bin should be added to your PATH environment variable. The optimal position will depend on what development tools you have on your system and which you want to have precedence.

    If you have other open source applications such as Skunkware on your system and you wish to have the OSTK tools take precedence, add the OSTK path ahead of the Skunkware path.

    PATH=....:/usr/gnu/bin:/usr/local/bin:....

    Because some version of the UDK C compilation system is required so that development libraries, linker and system header files are available for GNUgcc, the UNIX object file utilities will be on the system and in your default PATH. Since these are identically named, your preferences will dictate the placement of /usr/gnu/bin with respect to /usr/ccs/bin, /usr/bin and /bin. The GNU compilers will access the GNU assembler and the UNIX linker by full path name and are not affected by PATH ordering.

  2. Accessing available MAN pages.

    The man pages that are available for the OSTK tools are installed in the /usr/gnu/man. Both man and cat pages are provided. These man pages can be accessed by either

  3. Compiler options.

    While proponents of either the OUDK or OSTK will be familiar with their preferred compiler's options, the different spelling of options for similar functionality may be confusing to some.

    Function OUDK option GCC option
    generate position independent code (PIC) -Kpic
    -KPIC
    -fpic
    -fPIC
    compile for and link with threads library
    (do not specify -lthread)
    -Kthread
    -KthreadT
    -pthread
    -pthreadT
    link a shared object -G -shared
    generate floating point code conforms to strict IEEE floating
    point and C standards
    -Kieee
    <default>
    -fno_fast_math
    generate more aggressive FP code under the assumption that no
    exception conditions, NaNs or infinities are encountered
    -Kno_ieee -ffast_math
    <default>
    schedule instructions for i486 processors -Ki486 -march=i486
    schedule instructions for Pentium processors -Kpentium -march=i586
    schedule instructions for Pentium Pro, P-II, P-III processors -Kpentium_pro -march=i686