                Installation Guide for Compaq C Compiler 
                     Developers' Toolkit Supplement

  +------------------------------------------------------------------------+
  | Copyright 2002 Compaq Information Technologies Group, L.P.             |
  |                                                                        |
  | Compaq and the Compaq logo are trademarks of Compaq Information        |
  | Technologies Group, L.P. in the U.S. and/or other countries.           |
  |                                                                        |
  | Confidential computer software. Valid license from Compaq required for |
  | possession, use or copying. Consistent with FAR 12.211 and 12.212,     |
  | Commercial Computer Software, Computer Software Documentation, and     |
  | Technical Data for Commercial Items are licensed to the U.S. Government|
  | under vendor's standard commercial license.                            |
  +------------------------------------------------------------------------+

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

    Note that the CMPDEVALT subset was only available on Version 4 systems.

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.

    This runtime support update ships with Compaq Fortran.  It is also ships
    in the following patch kits

	DIGITAL UNIX V4.0D Patch Kit 5 (and later)
	DIGITAL UNIX V4.0E Patch Kit 3 (and later)

    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) may also contain 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.1.gz in section 1 of the manual and can be accessed by
    copying the file to a temporary directory, and using the -M option
    to the man command to specify the directory.  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 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.

    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
    as malloc.3.gz in section 3 of the manual and can be accessed by
    copying the file to a temporary directory, and using the -M option
    to the man command to specify the directory.  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.



