                Installation Guide for Compaq C Compiler 
                     Developers' Toolkit Supplement

  +------------------------------------------------------------------------+
  |	        Copyright Compaq Computer Corporation, 2001                |
  |		 	   All rights reserved.                            |
  |                                                                        |
  |  The information in this document is subject to change without notice  |
  |  and should not be construed as a commitment by Compaq Computer        |
  |  Corporation. Compaq Computer Corporation assumes no responsibility    |
  |  for any errors that may appear in this document.                      |
  |                                                                        |
  |  The software described in this document is furnished under a license  |
  |  and may be used or copied only in accordance with the terms of such   |
  |  license.                                                              |
  |                                                                        |
  |  No responsibility is assumed for the use or reliability of software   |
  |  on equipment that is not supplied by Compaq Computer Corporation or   |
  |  its affiliated companies.                                             |
  +------------------------------------------------------------------------+

This document contains the information you will need to install the Developers'
Toolkit Supplement version of the Compaq C Compiler for Compaq Tru64 UNIX 
V4.0D and later systems.

            1. contents of kit
            2. operating system requirements
            3. license requirements
            4. cc.alt version of om
            5. libots3
            6. cc man pages
            7. dense malloc library
            8. new header files
            9. operation of compiler
           10. installation instructions

1. Contents of kit

    The compiler kit is contained in compressed tar file DTC650.tar.gz which
    unpacks into directory Compaq_C_Compiler.  That directory contains two
    subdirectories, doc and kit.  The doc directory contains installation.txt
    (the file you are now reading) and release_notes.txt.  These files as well
    as additional documentation will be available online once the kit is
    installed.  The kit directory contains 2 subsets:

	DTCCMPLR650  -  compiler
	OTABASE220   -  runtime support library for OpenMP/parallel directives

2. Operating system requirements

    This kit will install and run on all supported versions of Compaq Tru64
    UNIX Version 4.0D and later.

    For 4.0D you should install the following operating system patch in
    addition to the compiler kit.  This is required to obtain a sufficiently
    modern cc driver.

	DIGITAL UNIX V4.0D Patch Kit 4 (or later)

    If you do not install the required patch the kit will automatically
    install one for you.  If it does, you should de-install the kit before
    modifying your system with installupdate or dupatch to avoid conflicts.

3. License requirements

    The new Developers' Toolkit (dtk) compiler, unlike the compiler that
    shipped on the base system, will test for an active LMF license PAK for
    OSF-DEV.  This license should already be active on systems on which
    software development is done.

4. cc.alt version of om

    This kit creates a symbolic link to the cc.alt version of om (the
    post-link optimizer invoked by cc -om) if it is installed.  That is

	/usr/lib/cmplrs/cc.dtk/om -> ../cc.alt/om

    The cc.alt kit is contained in the CMPDEVALT subset.  If for some reason
    you want to change this symbolic link (e.g. you install or delete the
    CMPDEVALT subset after the kit is installed) you can manipulate the link
    (with root privileges) using

	# setld -c DTCCMPLR650 status
	# setld -c DTCCMPLR650 om.sys
	# setld -c DTCCMPLR650 om.ccalt

5. libots3

    The OTABASE220 subset contains an updated version of the runtime support
    library libots3 for the OpenMP and old-style manual decomposition features
    of Compaq C (and Fortran).  Some older versions of that library did not
    contain the full OpenMP API.

    The installation procedures for this kit automatically determine whether
    or not the libots3 library on your system is functionally sufficient.
    If not, it installs the OTABASE220 subset to bring it up to date.

    However, this version (OTABASE 220) also contains bug fixes not yet
    released in patch kits, and generally you should install it unless
    you know you have already installed a higher version.  You can use
        setld -i | grep OTABASE
    to show what version you have installed.
    
    Please note that if you are building an application for distribution that
    relies on this library, the machines on which that application will run
    may not contain an updated libots3 library.  There are several ways to
    address this problem (though we recommend the first)

        1) link the application with libots3.a
        2) redistribute libots3.so with the application
        3) require that your customers obtain the kit from
           the web, and install it on their systems.

6. cc man pages

    This kit installs a new cc man page.  The old cc man page will continue to
    be available as cc-nodtk in section 1 of the manual and can be accessed by
    "man cc-nodtk".  Deinstalling this new compiler restores the man page for
    the base system compiler to section 1.

    In addition to the English version, this kit contains a Japanese
    translation for the cc man page that will be installed in the following
    directory if it exists at installation time

	/usr/i18n/share/ja_JP.deckanji/man/man1

    Note that if Japanese support is in installed AFTER this kit, the
    translated version of this new man page will NOT be present (and thus 
    "man cc" will likely return the Japanese translation of the man page for
    the C compiler that shipped with the base operating system, not the new 
    (dtk) compiler).

7. dense malloc library

    This kit installs a new library

        /usr/ccs/lib/libdensemalloc.a 

    onto V5.1 and V5.1A systems.  This library provides an alternate set of
    malloc routines that implement a "dense malloc" memory allocation 
    strategy that can significantly improve the runtime performance of certain
    programs.

    This library isn't installed on V5.1B systems since libdensemalloc is a
    stable part of the operating system starting with this version.

    See Release Notes Section 5 for a discussion of this allocation strategy
    and a description of how to use this new library.

    If the kit installs this new library it also installs a new malloc(3) man
    page.  The old malloc(3) man page will continue to be available and can be
    accessed by "man malloc-nodtk".  Deinstalling the kit will restore the
    original man page.

8. New header files

    This kit installs new header files into /usr/include.dtk.  This directory
    is added to the compiler's #include search path automatically by the cc
    driver so that the header files will be read during "normal" compiles.

    These header files include new C99 headers (e.g. stdbool.h),
    "supplemental" headers that contain new C99 declarations (e.g. stdio.h),
    and headers that define the parallel decomposition APIs (omp.h, mpc.h).

    See Release Notes Section 6 for a discussion of these new header files and
    suggestions about what to do if your application identifiers conflict with
    the new C99 reserved library names.

9. Operation of compiler

    Once installed, the (dtk) compiler will function as the default "cc"
    unless -nodtk, -oldc, or "-W*,-static*" appears on the command-line or is
    implied by environment variable DEC_CC.  For those exceptional cases, the
    compiler that shipped on the base system will be used.

    Note that "-W*,-static*" designates a collection of undocumented options
    used for building kernel objects and device drivers.  The doconfig utility
    uses this switch and hence will always use the base system compiler for
    building kernel files.  Anyone building kernel layered products should use
    this switch as well.

    Deinstalling the (dtk) compiler (by deleting its subset using setld)
    restores the behavior of your system to use the system compiler for all
    compiles by default.

10. Installation Steps

    1) It is advisable to back up your system disk before installing any
       software.  Refer to your system documentation for further details.

    2) Log in as superuser (root)

    3) Delete any installed versions of the DTK Supplement compiler

	   # /usr/sbin/setld -i | grep DTKCMP
	   # /usr/sbin/setld -i | grep DTCCMP
	   # /usr/sbin/setld -d <subset>

       and any DTK driver patch kits

           # /usr/sbin/setld -i | grep DTAPATCH
           # /usr/sbin/setld -d <subset>

    4) If you are on a V4.0D system, install the appropriate operating system
        patch to update your cc driver program.  

	    DIGITAL UNIX V4.0D Patch Kit 4 (or later)

       As described above, if you do not do this the kit will automatically
       update the cc driver for you.  If it does you should deinstall this
       kit before modifying your system with the dupath or installupdate
       utilities.

    5) Access the files:

       Copy DTC650.tar.gz to a temporary directory.  That file may be 
       unpacked as follows:

            # gunzip -cd DTC650.tar.gz | tar xvf -

       Then cd to the Compaq_C_Compiler directory.

    6) Install the kit directory

            # /usr/sbin/setld -l kit

       That will install at least the first of these

	    Compaq C Compiler for Developers Toolkit Supplement
	    Compaq Compiled Code Support Library #220

       It will install the second only if the libots3 library on your system
       is insufficient.

    7) When the installation is complete you are free to delete the 
       Compaq_C_Compiler directory.



