Getting Started

UnixWare 7.1.3 (UDK) Runtime Libraries

Binary Compatibility Module 7.1.3 for SCO OpenServer


    UnixWare 7.1.3 (UDK) Runtime Libraries

The basic UnixWare 7.1.3 runtime libraries are provided for installation on UnixWare 7.1.1, UnixWare 7.1.2, and Open UNIX 8.0.0. The libraries provided are:

Package Current Version UW 713 Version Description
    libc 8.0.1c 8.0.1 C Standard runtime library (updated since UW 7.1.3 release)
    libm 8.0.1 8.0.1 C math runtime library
    libC 8.0.1 8.0.1 UDK C++ Standard runtime library
    libstdc++     2.95.3-pl1 d 2.95.3-pl1 d GNU C++ Standard runtime library - /usr/gnu/lib/libstdc++.so.2.10.0
The GNU C++ runtime library is required for UnixWare applications built with the GNU C++ compiler in the Open Source Tool Kit.
For UnixWare and Open UNIX only.

In addition, if these packages reflect a later version than those released in the UnixWare 7.1.3 release, these packages may be used to update the runtime on UnixWare 7.1.3 and SCO OpenServerTM Releases 5.0.6 and 5.0.7.

Caution

The classic UNIX text editors ed and vi (plus its alternative names) included an incomplete workaround for their historic assumptions regarding dynamic memory allocation. With the latest shared C library malloc(), the workaround also needed to include its own calloc() to keep these editors working.

When installing the UnixWare 7.1.3 (UDK) Runtime Libraries on UnixWare 7.1.1, UnixWare 7.1.2 or Open Unix 8.0.0 platforms for the first time, also install the UNIX editor escalation fix, erg712216.Z, also available here.

Platforms Supported and System Requirements

These runtime libraries may be installed on the following platforms:

Updated libc, libm, and libC packages, when they become available here, can be applied to the platforms listed above and to:

Disk space requirements:

libc libm libC    libstdc++
Disk Space     0.6 MB     0.2 MB     0.5 MB     2.5 MB

Installation

The UnixWare 7.1.3 Runtime Libraries are available as four separately downloadable files that are in pkgadd datastream format.

  1. Download the following five:
    • libc-uw713.pkg
    • libm-uw713.pkg
    • libC-uw713.pkg
    • libstdc++.pkg    (optional)
    • erg712216.Z      (if installing for the first time on UW 7.1.1, UW 7.1.2 or OU 8.0.0)
  2. Change to the directory containing the downloaded files:
    cd  <download dir>
  3. As root, install the packages in the following order.
    pkgadd -d `pwd`/libc-uw713.pkg      # C runtime
    pkgadd -d `pwd`/libm-uw713.pkg      # math runtime
    pkgadd -d `pwd`/libC-uw713.pkg      # C++ runtime
    pkgadd -d `pwd`/libstdc++.pkg      # GNU C++ runtime
    If installing for the first time on UW 7.1.1, UW 7.1.2, or on OU 8.0.0, update the UNIX editors.

Important Notes

Licensing
The UnixWare 7.1.3 (UDK) Runtime Libraries are licensed under the same terms as the host SCO platform upon which they have been installed.



    Binary Compatibility Module 7.1.3 for SCO OpenServer (for UDK Compatibility)

UDK Compatibility Modules (also known as Binary Compatibility Modules or BCMs) for SCO® OpenServerTM enable applications compiled on UnixWare® 7 development environments to be run on SCO OpenServer systems.

Compatibility modules are created in conjunction with SCO UnixWare/OpenServer Development Kit (UDK) releases. For example, the OSRcompat-uw713 available here is the latest BCM based on the UnixWare 7.1.3 UDK and enables applications that were written and compiled with UDK Release 7.1.3. or earlier UDK releases to be run on a supported OpenServer platform.

In general, the latest release of the OSRcompat module is usually the best one to use on your platform. However, certain applications may require a specific version, so be sure to check the system requirements for your application. Consult your application vendor for compatibility module requirements if there are any doubts.

Unlike earlier version of the BCMs, this release is actually a UnixWare package set containing four packages. This is done so that updated versions of libc, libm and libC may be applied to supported OpenServer platforms, if updates are made for UnixWare platforms.

Set OSRcompat contains:
Package Current Version UW 713 Version Description
    libc 8.0.1c 8.0.1 C Standard runtime library (updated since UW 7.1.3 and OSR 5.0.7 release)
    libm 8.0.1 8.0.1 C math runtime library
    libC 8.0.1 8.0.1 UDK C++ Standard runtime library
    OSRcmppkg     8.0.1 8.0.1 Remainder of UnixWare runtime required to run UnixWare 7 applications on OpenServer platforms

For technical details about the contents of this compatibility module, see ``How the BCM works on SCO OpenServer''.

For more information about the UDK, see the UDK documentation set on the SCO documentation server;

Platforms Supported and System Requirements

This version of the Binary Compatibility Module can only be installed on:

Disk space required: 12.7 MB

Installation

The Binary Compatibility Module 7.1.3 is available as a single downloadable file that is in pkgadd datastream format.

  1. Download the product file OSRcompat-uw713.set.
  2. Change to the directory containing the downloaded file:
    cd  <download dir>
  3. As root, install the OSRcompat set by:
    pkgadd -d `pwd`/OSRcompat-uw713.set      
    Install the four packages contained in the set, by selecting "Yes" for each package in the package selection menu.

How the BCM works on SCO OpenServer

The SCO OpenServer Release 5 compatibility module works by installing UnixWare 7 versions of the shared libraries loaded by an application on SCO OpenServer, as well as installing some of the UDK tools.

The UnixWare 7 versions are installed in an alternate directory tree (/udk).

The BCM installs two types of libraries on SCO OpenServer:

An example of the second type of library is libsocket. On SCO OpenServer, sockets are created and manipulated through the socketsys system call. Another example is the UnixWare 7 libc for SCO OpenServer, which maps UnixWare 7 system call numbers to the values expected by the SCO OpenServer kernel, and maps error numbers returned by the SCO OpenServer kernel to the values expected by UnixWare 7 applications. It also maps certain data structures and constants that are different on the two platforms.

Besides shared libraries, certain other files need to be part of the BCM. Such files would be any file that is part of the system and is visible to a running application. This includes, for example, locale files, configuration files, other data files like bitmaps, etc.

When a binary is run, the dynamic linker that is part of the OpenServer libc.so.1:

  1. detects whether the executable file was generated by the SCO OpenServer compiler or the UDK compiler

  2. if the file was generated by an SCO OpenServer compiler, it is executed as it normally would be on SCO OpenServer (see ``Marking an ELF binary'').

  3. if the file was generated by the UDK compiler, the dynamic linker maps in the UnixWare 7 dynamic linker and passes it control

  4. the UnixWare 7 dynamic linker:

    • looks for all shared libraries to be loaded by the process under /udk, before looking in the places specified by its normal path searching rules

    • maps UnixWare 7 system constants to values expected on the target system

    • maps error numbers returned by the target system to UnixWare 7 values

    • maps system data types and detects overflows

Marking an ELF binary

NOTE: Some existing SCO OpenServer ELF binaries built with third-party compilers may not run after installing this package on SCO OpenServer. That is because they do not contain the special mark denoting an SCO OpenServer ELF binary.

This mark is created by the SCO OpenServer C compiler, icc, and most versions of gcc that generate SCO OpenServer ELF binaries.

The mark consists of a special segment of type NOTE. If an SCO OpenServer binary does not run after installing this package, you can determine whether it is missing the special mark by running the dump command:

dump -ov file

You should see an entry denoted as type "NOTE".

If this entry is missing, you may run the command elfmark(1) to mark the file as an SCO OpenServer binary:

/udk/usr/ccs/lib/elfmark -t osr5 file

Note that the mark inserted by elfmark is different from the mark created by the standard compilers.

Important Notes

Licensing
The Binary Compatibility Module 7.1.3 (UDK runtime libraries) are licensed under the same terms as the host SCO platform upon which they have been installed.


Document version 405-000-030-c
2 October 2003
Copyright © 2003 The SCO Group, Inc. All rights reserved.