============================================================================================================= ============================================================================================================= ®   Installation Instructions for the SAS/C(r) Cross-Platform Software for UNIX Environments ============================================================================================================= ============================================================================================================= Table of Contents Getting Started........................................................v Purpose..............................................................v Conventions..........................................................v Terms................................................................v Federal Government Rights Notice.....................................v Chapter 1: Introduction...............................................1 Installation.........................................................1 Chapter 2: Disk Space Requirements....................................3 Chapter 3: Installing SAS/C(r) Cross-Platform Software on your UNIX(r) System.........................................................5 Installing from a CD-ROM.............................................5 Installing from Tape.................................................6 Chapter 4: Independent Mainframe SAS/C Cross-Platform Software Installation...........................................................7 Installing the Independent SAS/C Cross-Platform Software on MVS......8 Installing the Independent SAS/C Software on ESA Mode CMS...........13 Installing the Independent SAS/C Software on 370 Mode CMS...........17 Chapter 5: Mainframe SAS/C(r) Cross-Platform Software Installation...19 Installing SAS/C CSL on MVS.........................................20 Installing SAS/C CSL on CMS.........................................22 Chapter 6: Installation Verification.................................25 Verify SAS/C Cross-Platform Compiler Installation...................25 Verify SAS/C Cross-Platform C++ Development System Installation.....26 Chapter 7: Code Maintenance..........................................27 SAS/C Usage Notes...................................................27 How to Receive Updates for SAS/C Cross-Platform Software............27 How to Apply Updates................................................27 sascc.cfg Shell Script..............................................27 Product License Maintenance for the SAS/C Cross-Platform C Compiler........................................................28 Product License Maintenance for the SAS/C Cross-Platform C++ Software......................................................28 Chapter 8: Customizing SAS/C Installation............................29 Making the Transient Library Available to C Programs on MVS.........29 Customizing SAS/C Help Information on MVS...........................32 Customizing Temporary File Defaults on MVS..........................33 Customizing Dynamic Allocation Defaults on MVS......................35 Customizing Data-in-Virtual Defaults on MVS.........................39 Customizing CICS Library Support....................................41 Customizing TCP/IP Defaults on MVS..................................47 Appendix A: Utility Command Formats..................................49 dset................................................................49 objzap..............................................................50 spatch..............................................................53 update..............................................................54 zap.................................................................56 Appendix B: SAS/C(r) Online Documentation..............................57 ============================================================================================================= Getting Started Purpose This document describes the installation of SAS/C(r) Cross-Platform Software for UNIX(r). It includes instructions for installing the SAS/C Cross-Platform Software on the following UNIX operating system derivatives (hardware platform is indicated in parentheses): . AIX(r) (IBM RISC System/6000¿) . SunOS (Sun SPARC) . HP-UX The products included with this release are: . SAS/C Cross-Platform Compiler . SAS/C Cross-Platform C++ Development System . SAS/C Cross-Platform Resident Library for MVS . SAS/C Cross-Platform Resident Library for CMS Additionally, this guide contains valuable information on product maintenance and other topics that will be useful in the future. Therefore, we urge you to keep this document for later reference. Conventions This section covers the typographical conventions this manual uses. You will see several type styles in this manual. Style conventions are summarized here: --------------------------------------------------------------------------------------------- Convention Description --------------------------------------------------------------------------------------------- roman is the basic type style used for most text in this book. monospace is used for language elements in the text and in programming code. italic is used for environment variable elements that are specific to the user's site. It is also used to indicate terms that are defined in text. --------------------------------------------------------------------------------------------- Terms Independent is defined as a customer who has licensed SAS/C Cross-Platform Software independently of any SAS/C mainframe software. Federal Government Rights Notice If your installation is a Federal Government site or a Federal Government Prime Contractor site, you are responsible for the information contained in a usage rights notice that has been included on the installation media. Please review the Government Rights Notice information contained in the file govnote.txt as soon as the installation is completed. ============================================================================================================= Chapter 1: Introduction This document provides instructions for installing the SAS/C(r) Cross-Platform Software for UNIX(r). Please read these instructions before you attempt to install any SAS/C Cross-Platform Software product in the UNIX environment. Installation The basic install process is the same, regardless of the product combination your site has licensed. Every installation consists of the following steps. 1. Verify the disk space needed on your UNIX system. See "Disk Space Requirements" on page 3. 2. Load the SAS/C Cross-Platform software products to your UNIX system. See "Installing SAS/C(r) Cross-Platform Software on your UNIX(r) System" on page 5. 3. If you are an independent customer, not a SAS/C mainframe customer you will need to install a subset of the cross-platform software on your mainframe. See "Independent Mainframe SAS/C Cross-Platform Software Installation" on page 7. Step 4, shown below, will be performed automatically. 4. If you plan to use the cross-platform facilities of the SAS/C debugger on MVS or CMS and do not have SAS/C CSL installed at your site, you will need to install a subset of the SAS/C CSL redistributable files. See "Mainframe SAS/C(r) Cross-Platform Software Installation" on page 19. 5. Optionally, perform SAS/C installation customizations. See "Customizing SAS/C Installation" on page 29. 6. Validate the installation. See "Installation Verification" on page 25. 7. Perform maintenance. See "Code Maintenance" on page 27. ============================================================================================================= Chapter 2: Disk Space Requirements Use the following table to determine the minimum disk space required to install the product combination that your site has licensed on your UNIX system. --------------------------------------------------------------------------------------------- SAS/C Cross-Platform Size in Megabytes --------------------------------------------------------------------------------------------- Compiler 25.0 C++ Development System 5.5 Resident Library for MVS 9.0 Resident Library for CMS 15.0 --------------------------------------------------------------------------------------------- In addition to the space needed for the products listed above, you will need approximately 8.5 megabytes of space on your UNIX system. This space will be used to load the files needed for the mainframe installation of the SAS/C Debugger and SAS/C CSL redistributable files. These redistributable files require no additional license to be installed on a mainframe and are part of the SAS/C library and the SAS/C CSL products. The installation process may require additional temporary space. Depending on your host and installation location, this temporary space may be as large as 10 megabytes. Your installation media may contain maintenance in the form of SAS/C Cross-Platform software updates. See "Code Maintenance" on page 27 for additional information. The installation script, install.sh, will optionally extract the updates from the installation media. If you choose to install the updates, you will need to provide additional disk space. ============================================================================================================= Chapter 3: Installing SAS/C(r) Cross-Platform Software on your UNIX(r) System This chapter explains how to install the SAS/C Cross-Platform Software from either CD-ROM or Tape. Caution: Relocating the SAS/C Cross-Platform Software. The installation process sets up a shell script named sascc.cfg. This shell script contains important location information used by the C and C++ compiler drivers. If you move the software after the initial installation, you will need to modify sascc.cfg. See "Code Maintenance" on page 27. If you need additional information, refer to "SAS/C Technical Report: SAS/C Cross-Platform Compiler and SAS/C Cross-Platform C++ Development System Usage and Reference" for instructions on modifying the sascc.cfg shell script. Updates to the SAS/C Cross-Platform Compiler may be included on the installation media. You will be prompted about applying updates at installation time. Installing from a CD-ROM Before installing the SAS/C Cross-Platform Software from CD-ROM, be certain that you have the following information. --------------------------------------------------------------------------------------------- Variable Meaning --------------------------------------------------------------------------------------------- cdrom_device_name the name of the CD-ROM drive attached to your machine mount_location where the CD is mounted in your directory hierarchy --------------------------------------------------------------------------------------------- To install from a CD-ROM, follow these steps: 1. Mount CD-ROM. . For AIX(IBM RS6000) issue: mount -r -v cdrfs cdrom_device_name mount_location . For SunOS(SPARC) issue: mount -r -t hsfs cdrom_device_name mount_location . For HP-UX issue: mount -r cdrom_device_name mount_location 2. Change directory to a temporary location: cd /tmp 3. Extract the installation script from the tar file. . For AIX(IBM RS6000) and SunOS(SPARC) issue: tar xvf mount_location/sasc.tar install.sh . For HP-UX issue: tar xvf mount_location/SASC.TAR install.sh 4. Execute install.sh by issuing: sh install.sh Installing from Tape Before installing, be certain that you have the following information. --------------------------------------------------------------------------------------------- Variable Description --------------------------------------------------------------------------------------------- tape_device_name the name of the tape drive attached to your machine --------------------------------------------------------------------------------------------- To install the SAS/C Cross-Platform Software from tape, follow these steps: 1. Insert the installation tape and make sure the tape is rewound. 2. Change directory to a temporary location: cd /tmp 3. Extract the installation script, install.sh, from the tar file by issuing: tar xvf tape_device_name install.sh 4. Execute install.sh by issuing: sh install.sh ============================================================================================================= Chapter 4: Independent Mainframe SAS/C Cross-Platform Software Installation The instructions in this chapter are for SAS/C sites who licensed the SAS/C Cross-Platform Software independently of any SAS/C mainframe software. If you are a currently licensed SAS/C mainframe site, see "Installation" on page 1 for the installation steps you need to follow. Throughout this chapter you will find references to ESA Mode CMS and 370 Mode CMS. ESA Mode CMS is used to refer to the CMS associated with VM/XA, VM/ESA, and VM/SP release 6. 370 Mode CMS is used to refer to the CMS associated with VM/SP release 5 or earlier. CMS sites should determine which instructions to use, the ESA Mode or 370 Mode, before continuing with this installation. If you are running VM/SP release 5 or earlier (370 Mode CMS), you will not be able to take advantage of cross debugging, but you may use the debugger supplied for mainframe debugging. If you are installing SAS/C Cross-Platform Software on MVS, refer to page 8. If you are installing SAS/C Cross-Platform Software on ESA Mode CMS, refer to page 13. If you are installing SAS/C Cross-Platform Software on 370 Mode CMS, refer to page 17. Caution: If you are a currently licensed SAS/C mainframe sites do not use the instructions in this chapter. Installing the Independent SAS/C Cross-Platform Software on MVS Perform the following steps to install SAS/C Cross-Platform Software on MVS. 1. Allocate Data Sets for Installation You will need to allocate (possibly using FTP or JCL) the following data sets to hold files that will be transferred from your UNIX system. --------------------------------------------------------------------------------------------- Data Set Attributes --------------------------------------------------------------------------------------------- PREFIX.CNTL SPACE=(6160,(5,1,1)),RECFM=FB, DSORG=PO, LRECL=80, BLKSIZE=6160 PREFIX.CLIST SPACE=(6160,(5,1,1)),RECFM=FB, DSORG=PO, LRECL=80, BLKSIZE=6160 PREFIX.DBGHELP SPACE=(4080,(300,1)), RECFM=FBS, DSORG=PS, LRECL=80, BLKSIZE=4080 LMPORT.OBJDS SPACE=(3120,(180,1)), RECFM=FB, DSORG=PS, LRECL=80, BLKSIZE=3120 PREFIX.PORTLIB SPACE=(6120,(2200,1,1)),RECFM=V, DSORG=PO, LRECL=255, BLKSIZE=6120 --------------------------------------------------------------------------------------------- 2. Transfer Files to MVS Your site probably has a standard method of transferring files between hosts, such as FTP (File Transfer Protocol). The transfer method that you use should perform an unaltered binary transfer of bytes. Below is an example of using FTP to transfer the needed files to MVS. # ftp -v mvs << __EOF quote site RECFM=FB LRECL=80 BLOCKSIZE=6160 quote site BLOCKS quote site pri=5 sec=1 directory=1 mkdir PREFIX.cntl quote site RECFM=FB LRECL=80 BLOCKSIZE=6160 quote site BLOCKS quote site pri=5 sec=1 directory=1 mkdir PREFIX.clist quote site RECFM=V LRECL=255 BLOCKSIZE=6120 quote site BLOCKS quote site pri=2200 sec=1 directory=1 mkdir PREFIX.portlib type ascii put ./lib/mvs/sascindp/instlmvs.jcl prefix.cntl(instlmvs) put ./lib/mvs/sascindp/dbghelp.clt prefix.clist(l$dbhelp) put ./lib/cics/sascindp/cicsaloc.jcl prefix.cntl(cicsaloc) put ./lib/cics/sascindp/cicscsd prefix.cntl(cicscsd) put ./lib/cics/sascindp/cicsdct prefix.cntl(cicsdct) put ./lib/cics/sascindp/cicspct prefix.cntl(cicspct) put ./lib/cics/sascindp/cicsppt prefix.cntl(cicsppt) type binary quote site RECFM=FBS LRECL=80 BLOCKSIZE=4080 put ./lib/mvs/sascindp/dbghelp.hyp prefix.dbghelp quote site RECFM=FB LRECL=80 BLOCKSIZE=3120 put ./lib/mvs/sascindp/lmport.obj lmport.objds put ./lib/mvs/sascindp/mvsrtl.lmp prefix.portlib(linklib) put ./lib/cics/sascindp/cicsrtl.lmp prefix.portlib(cicsload) put ./lib/mvs/sascindp/tsoload.lmp prefix.portlib(tsoload) put ./lib/mvs/sascindp/csl/cslrtl.lmp prefix.portlib(cslrtl) put ./lib/mvs/sascindp/csl/rdload.lmp prefix.portlib(rdload) put ./lib/mvs/sascindp/csl/smpload.lmp prefix.portlib(smpload) quit __EOF Which Files to Transfer to MVS When you ran the installation script, install.sh, the lib/mvs/sascindp, lib/mvs/sascindp/csl, and lib/cics/sascindp directories were created in your installation location or directory. These directories contain the files needed for the MVS SAS/C redistributables installation. Transfer (using your method) these SAS/C Files Transfer the following SAS/C files using the method you prefer. --------------------------------------------------------------------------------------------- File Definition --------------------------------------------------------------------------------------------- instlmvs.jcl is the install JCL. Move this file to PREFIX.CNTL(INSTLMVS). dgbhelp.clt is the SAS/C Debugger help file clist. Move this file to PREFIX.CLIST(L$DBHELP). cicsaloc.jcl is JCL used for CICS customizations. Move this file to PREFIX.CNTL(CICSALOC). cicscsd is used for CICS customizations. Move this file to PREFIX.CNTL(CICSCSD). cicsdct is used for CICS customizations. Move this file to PREFIX.CNTL(CICSCSD). cicspct is used for CICS customizations. Move this file to PREFIX.CNTL(CICSPCT). cicsppt is used for CICS customizations. Move this file to PREFIX.CNTL(CICSPPT). dbghelp.hyp is the SAS/C Debugger help file. Move this file to PREFIX.DBGHELP. lmport.obj is the LMPORT utility object file. Move this file to LMPORT.OBJDS. mvsrtl.lmp is the SAS/C transient library. Move this file to PREFIX.PORTLIB(LINKLIB). tsoload.lmp is the TSO command processor support and TSO environment variable support library. Move this file to PREFIX.PORTLIB(TSOLOAD). cicsrtl.lmp is the SAS/C CICS transient load library. Move this file to PREFIX.PORTLIB(CICSLOAD). cslrtl.lmp is the SAS/C CSL transient library. Move this file to PREFIX.PORTLIB(CSLRTL). rdload.lmp is the SAS/C CSL redistributable utilities. Move this file to PREFIX.PORTLIB(RDLOAD). smpload.lmp is the SAS/C CSL sample library. Move this file to PREFIX.PORTLIB(SMPLOAD). --------------------------------------------------------------------------------------------- 3. Edit the Installation Job, INSTLMVS You should find the installation job in PREFIX.CNTL(INSTLMVS). The first three lines of the INSTLMVS job contain the job card to be used for executing the job. Modify the ACCOUNT-CODE and PROGRAMMER-NAME values to reflect those used by your site. The next few lines in the INSTLMVS job have parameters that need to be modified. These parameters are: --------------------------------------------------------------------------------------------- Parameter Definition --------------------------------------------------------------------------------------------- PREFIX='SASC.C600' should reflect the PREFIX value used in "1. Allocate Data Sets for Installation" on page 8. CSLPRFX='SASC.CSL600' specifies the high-level prefix to use for the SAS/C CSL data set names. PORTLIB='YOUR.PORTLIB.HERE' this is PREFIX.PORTLIB used in "1. Allocate Data Sets for Installation" on page 8. OBJDS='YOUR.LMPORT.OBJ' this is LMPORT.OBJDS used in "1. Allocate Data Sets for Installation" on page 8. --------------------------------------------------------------------------------------------- 4. Run the installation Job, INSTLMVS After modifying the JCL according to your site requirements, submit the INSTLMVS job. The INSTLMVS job will create the SAS/C libraries listed below. --------------------------------------------------------------------------------------------- Library Definition --------------------------------------------------------------------------------------------- PREFIX.LINKLIB SAS/C transient library PREFIX.TSOLOAD SAS/C TSO command processor support and TSO environment variable support library. PREFIX.CICSLOAD SAS/C CICS transient load library CSLPRFX.LOADLIB SAS/C CSL transient library CSLPRFX.RD.LOAD SAS/C CSL redistributable utility library - contains NFS User Commands CSLPRFX.SAMPLE.LOAD SAS/C CSL sample library --------------------------------------------------------------------------------------------- 5. Modify the SAS/C Debugger Help File clist During installation, the SAS/C Debugger help file clist was installed in PREFIX.CLIST(L$DBHELP). The file is similar to the following: /* COPYRIGHT (C) 1991 BY SAS INSTITUTE INC. ALL RIGHTS RESERVED. */ /* */ /* NAME: L$DBHELP (L$DBHELP) */ /* PRODUCT: SAS/C */ /* */ /* PURPOSE: ALLOCATE DEBUGGER HELP FILE */ /* */ ALLOCATE FILE(DBGHELP) DA(`%PREFIX..DBGHELP') SHR You will need to edit this clist and substitute the name of your SAS/C debugger help library in place of `%PREFIX..DBGHELP'. 6. Optionally, install the SAS/C Remote Debugger to run under the OpenEdition MVS Shell If you wish to use the SAS/C debugger under the OpenEdition MVS shell, you will need to install the remote debugger, sascdbg, into the Hierarchial File System. To install the remote debugger, perform the following steps: A. Transfer the remote debugger (sascdbg) and the installation job (SASCCPOE) to MVS. During the UNIX installation, sascdbg was placed in lib/mvs/sascindp/oemvs.tar in your installation location or directory. You will need to perform a binary transfer the file to MVS as: PREFIX.OEMVS.TAR SPACE=(3120,(200,1)),RECFM=FB, DSORG=PS,LRECL=1,BLKSIZE=3120 The OEMVS installation job, SASCCPOE, was installed during the UNIX installation into lib/mvs/sascindp/sasccpoe.jcl in your installation location or directory. You will need to transfer this file to MVS as PREFIX.CNTL(SASCCPOE). The PREFIX.CNTL data set was created in "1. Allocate Data Sets for Installation" on page 8. B. Edit the OEMVS installation job, SASCCPOE. The first three lines of PREFIX.CNTL(SASCCPOE) contain the job card to be used for executing the job. Modify the ACCOUNT-CODE and PROGRAMMER-NAME values to reflect those used by your site. The next several lines in the SASCCPOE job have parameters that need to be modified. These parameters are: --------------------------------------------------------------------------------------------- Parameter Definition --------------------------------------------------------------------------------------------- PREFIX='SASC.PREFIX' reflects the PREFIX value used for your SAS/C MVS installation DIR='/usr/local' specifies the location of `bin' installation directory for the SAS/C remote debugger UNIT=DISK specifies the unit type of the storage device where data sets may be created. USERID=YOURUSERID specifies a high level prefix that is used for creating an installation data set which is later deleted. --------------------------------------------------------------------------------------------- C. Run the installation job, SASCCPOE. After modifying the JCL according to your site requirements, submit the SASCCPOE job. SASCCPOE copies PREFIX.OEMVS.TAR into the HFS and installs sascdbg at the location specified by the DIR parameter. Your Installation is complete for MVS. SAS/C Cross-Platform Limited Distribution Library Files for MVS The following list contains all of the MVS SAS/C programs and libraries that are redistributable at no charge. ./lib/mvs/sascindp/mvsrtl.lmp ./lib/mvs/sascindp/tsoload.lmp ./lib/cics/sascindp/cicsrtl.lmp ./lib/mvs/sascindp/dbghelp.hyp ./lib/mvs/sascindp/dbghelp.clt ./lib/mvs/sascindp/csl/cslrtl.lmp ./lib/mvs/sascindp/csl/rdload.lmp ./lib/mvs/sascindp/csl/smpload.lmp ./lib/mvs/sascindp/instlmvs.jcl ./lib/mvs/sascindp/lmport.obj ---------------------------------------------------------------------- Installing the Independent SAS/C Software on ESA Mode CMS Perform the following steps to install SAS/C Cross-Platform Software on ESA Mode CMS. 1. Allocate a Minidisk for Installation Format an installation minidisk that contains 1700 4K blocks of space. Access the new minidisk and use this filemode in your transfer commands below. Note: It is recommended that you use a private minidisk for this installation, not a minidisk that contains any files from a previous SAS/C software installation. 2. Transfer Files to CMS Your site probably has a standard method of transferring files between hosts, such as FTP (File Transfer Protocol). The transfer method that you use should perform an unaltered binary transfer of bytes. Below is an example of using FTP to transfer the needed files to CMS. # ftp -v cms << __EOF type ascii put ./lib/cms/sascindp/instlcms.exc instlcms.exec put ./lib/cms/sascindp/csl/cslmerge.exc cslmerge.exec type binary put ./lib/cms/sascindp/cmsrtl.llp cmsrtl.portlib put ./lib/cms/sascindp/cmsdbg.llp cmsdbg.portlib put ./lib/cms/sascindp/fsslrtl.llp fsslrtl.portlib put ./lib/cms/sascindp/gencseg.llp gencseg.portmod put ./lib/cms/sascindp/csl/cslrtl.llp cslrtl.portlib put ./lib/cms/sascindp/csl/sasccsl.llp sasccsl.portlib put ./lib/cms/sascindp/csl/nfslogin.llp nfslogin.portmod put ./lib/cms/sascindp/csl/showmnt.llp showmnt.portmod put ./lib/cms/sascindp/csl/mount.llp mount.portmod put ./lib/cms/sascindp/csl/umount.llp umount.portmod put ./lib/cms/sascindp/csl/cd.llp cd.portmod put ./lib/cms/sascindp/csl/ls.llp ls.portmod put ./lib/cms/sascindp/csl/pwd.llp pwd.portmod quote site FIX 80 put ./lib/cms/sascindp/dbghelp.hyp dbghelp.hyp put ./lib/cms/sascindp/llport.obj llport.text quit __EOF Which Files to Transfer to CMS When you ran the installation script, install.sh, the lib/cms/sascindp and lib/cms/sascindp/csl directories were created in your installation location or directory. These directories contain the files needed for the ESA Mode CMS SAS/C redistributables installation. Transfer (using your method) these SAS/C CSL Files Transfer the following SAS/C CSL files using the method you prefer. --------------------------------------------------------------------------------------------- File Definition --------------------------------------------------------------------------------------------- instlcms.exc is the install EXEC. Move this file to INSTLCMS EXEC filemode, RECFM V, LRECL 80. dbghelp.hyp is the SAS/C Debugger help file. Move this file to DBGHELP HYP filemode, RECFM F, LRECL 80. llport.obj is the LLPORT utility object file. Move this file to LLPORT TEXT filemode, RECFM F, LRECL 80. cmsrtl.llp is the SAS/C transient library. Move this file to CMSRTL PORTLIB filemode. cmsdbg.llp is the SAS/C Debugger. Move this file to CMSDBG PORTLIB filemode. fsslrtl.llp is the SAS/C FSSL transient library. Move this file to FSSLRTL PORTLIB filemode. gencseg.llp is the GENCSEG utility. Move this file to GENCSEG PORTMOD filemode. cslrtl.llp is the SAS/C CSL NFS transient library. Move this file to CSLRTL PORTLIB filemode. sasccsl.llp is the SAS/C CSL RPC and some NFS transients. Move this file to SASCCSL PORTLIB filemode. nfslogin.llp is a SAS/C CSL utility command. Move this file to NFSLOGIN PORTMOD filemode. showmnt.llp is a SAS/C CSL utility command. Move this file to SHOWMNT PORTMOD filemode. mount.llp is a SAS/C CSL utility command. Move this file to MOUNT PORTMOD filemode. umount.llp is a SAS/C CSL utility command. Move this file to UMOUNT PORTMOD filemode. cd.llp is a SAS/C CSL sample command. Move this file to CD PORTMOD filemode. ls.llp is a SAS/C CSL sample command. Move this file to LS PORTMOD filemode. pwd.llp is a SAS/C CSL sample command. Move this file to PWD PORTMOD filemode. cslmerge.exc is an EXEC to merge the transient libraries. Move this file to CSLMERGE EXEC filemode. --------------------------------------------------------------------------------------------- 3. Run the installation EXEC, INSTLCMS Invoke INSTLCMS EXEC by issuing: INSTLCMS filemode --------------------------------------------------------------------------------------------- Variable Definition --------------------------------------------------------------------------------------------- filemode the minidisk formatted in "1. Allocate a Minidisk for Installation" on page 13, that now contains files from your UNIX system. --------------------------------------------------------------------------------------------- The INSTLCMS EXEC creates the following files on minidisk filemode: --------------------------------------------------------------------------------------------- File Definition --------------------------------------------------------------------------------------------- LLPORT MODULE LLPORT installation utility LSCRTL LOADLIB SAS/C Transient Library CSLRTL LOADLIB SAS/C CSL NFS Transients SASCCSL LOADLIB SAS/C CSL RPC and some NFS Transients L$FSSL LOADLIB SAS/C FSSL Transients L$DEBUG LOADLIB SAS/C Debugger GENCSEG MODULE GENCSEG Utility NFSLOGIN MODULE NFS User Command SHOWMNT MODULE NFS User Command MOUNT MODULE NFS User Command UMOUNT MODULE NFS User Command CD MODULE SAS/C CSL Sample Command LS MODULE SAS/C CSL Sample Command PWD MODULE SAS/C CSL Sample Command --------------------------------------------------------------------------------------------- 4. Optionally, Run CSLMERGE EXEC The SAS/C CSL NFS transients were installed in a file named CSLRTL LOADLIB. You should merge this with the compiler transients (LSCRTL LOADLIB). The CSLMERGE EXEC will perform this task for you and you should run this exec before using the SAS/C CSL product. To execute the exec issue: CSLMERGE cslfilemode compfilemode --------------------------------------------------------------------------------------------- Variable Definition --------------------------------------------------------------------------------------------- cslfilemode is the SAS/C CSL minidisk compfilemode is the SAS/C compiler minidisk --------------------------------------------------------------------------------------------- These filemodes may be the same or different depending on where you installed your SAS/C CSL product. The compiler minidisk (specified as compfilemode) should be a write accessed disk. Your installation is complete for ESA Mode CMS. SAS/C Cross-Platform Limited Distribution Library Files for ESA Mode CMS The following list contains all of the ESA Mode CMS SAS/C programs and libraries that are redistributable at no charge. ./lib/cms/sascindp/cmsdbg.llp ./lib/cms/sascindp/dbghelp.hyp ./lib/cms/sascindp/cmsrtl.llp ./lib/cms/sascindp/fsslrtl.llp ./lib/cms/sascindp/gencseg.llp ./lib/cms/sascindp/csl/cslrtl.llp ./lib/cms/sascindp/csl/sasccsl.llp ./lib/cms/sascindp/csl/cd.llp ./lib/cms/sascindp/csl/ls.llp ./lib/cms/sascindp/csl/mount.llp ./lib/cms/sascindp/csl/nfslogin.llp ./lib/cms/sascindp/csl/pwd.llp ./lib/cms/sascindp/csl/showmnt.llp ./lib/cms/sascindp/csl/umount.llp ./lib/cms/sascindp/instlcms.exc ./lib/cms/sascindp/llport.obj ---------------------------------------------------------------------- Installing the Independent SAS/C Software on 370 Mode CMS Perform the following steps to install SAS/C Cross-Platform Software on 370 Mode CMS. 1. Allocate a Minidisk for Installation Format an installation minidisk that contains 1200 4K blocks of space. Access the new minidisk and use this filemode in your transfer commands below. Note: It is recommended that you use a private minidisk for this installation, not a minidisk that contains any files from a previous SAS/C software installation. 2. Transfer Files to CMS Your site probably has a standard method of transferring files between hosts, such as FTP (File Transfer Protocol). The transfer method that you use should perform an unaltered binary transfer of bytes. Below is an example of using FTP to transfer the needed files to CMS. # ftp -v cms << __EOF hash type ascii put ./lib/pcms/sascindp/instlcms.exc instlcms.exec type binary put ./lib/pcms/sascindp/cmsrtl.llp cmsrtl.portlib put ./lib/pcms/sascindp/cmsdbg.llp cmsdbg.portlib put ./lib/pcms/sascindp/fsslrtl.llp fsslrtl.portlib put ./lib/pcms/sascindp/gencseg.llp gencseg.portmod quote site FIX 80 put ./lib/cms/sascindp/dbghelp.hyp dbghelp.hyp put ./lib/pcms/sascindp/llport.obj llport.text quit __EOF Which Files to Transfer to CMS When you ran the installation script, install.sh, the lib/pcms/sascindp directory was created in your installation location or directory. The lib/pcms/sascindp directory contains the files needed for the 370 Mode CMS SAS/C redistributables installation. Transfer (using your method) these SAS/C Files Transfer the following SAS/C files using the method you prefer. --------------------------------------------------------------------------------------------- File Definition --------------------------------------------------------------------------------------------- instlcms.exc is the install EXEC. Move this file to INSTLCMS EXEC filemode, RECFM V, LRECL 80. dbghelp.hyp is the SAS/C Debugger help file. Move this file to DBGHELP HYP filemode, RECFM F, LRECL 80. llport.obj is the LLPORT utility object file. Move this file to LLPORT TEXT filemode, RECFM F, LRECL 80. cmsrtl.llp is the SAS/C transient library. Move this file to CMSRTL PORTLIB filemode. fsslrtl.llp is the SAS/C FSSL transient library. Move this file to FSSLRTL PORTLIB filemode. cmsdbg.llp is the SAS/C Debugger. Move this file to CMSDBG PORTLIB filemode. gencseg.llp is the GENCSEG utility. Move this file to GENCSEG PORTMOD filemode. --------------------------------------------------------------------------------------------- 3. Run the installation EXEC, INSTLCMS Invoke INSTLCMS EXEC by issuing: INSTLCMS filemode --------------------------------------------------------------------------------------------- Variable Definition --------------------------------------------------------------------------------------------- filemode the minidisk formatted in "1. Allocate a Minidisk for Installation" on page 17, that now contains files from your UNIX system. --------------------------------------------------------------------------------------------- The INSTLCMS EXEC creates the following files on minidisk filemode: --------------------------------------------------------------------------------------------- File Definition --------------------------------------------------------------------------------------------- LLPORT MODULE LLPORT Installation Utility LSCRTL LOADLIB SAS/C Transient Library L$DEBUG LOADLIB SAS/C Debugger L$FSSL LOADLIB SAS/C FSSL Transients GENCSEG MODULE GENCSEG Utility --------------------------------------------------------------------------------------------- Your installation is complete for 370 Mode CMS. SAS/C Cross-Platform Limited Distribution Library Files for 370 Mode CMS The following list contains all of the 370 Mode CMS SAS/C programs and libraries that are redistributable at no charge. ./lib/pcms/sascindp/cmsrtl.llp ./lib/pcms/sascindp/fsslrtl.llp ./lib/pcms/sascindp/cmsdbg.llp ./lib/pcms/sascindp/dbghelp.hyp ./lib/pcms/sascindp/gencseg.llp ./lib/pcms/sascindp/instlcms.exc ./lib/pcms/sascindp/llport.obj ============================================================================================================= Chapter 5: Mainframe SAS/C(r) Cross-Platform Software Installation The instructions in this chapter are for SAS/C mainframe (MVS or CMS) sites who currently have SAS/C release 6.00 installed, and want to use their SAS/C mainframe debugger for cross debugging. The CSL files shipped with the SAS/C Cross-Platform Software are the same files that are distributed with release 6.00 of the SAS/C CSL product. You should skip this chapter if your site has SAS/C CSL release 6.00 licensed and installed. Note: If you are a CMS site, please read the following. You are installing a subset of the SAS/C CSL redistributables because the debugger needs some of the SAS/C CSL libraries to support cross debugging. The SAS/C CSL product only runs in ESA mode, which refers to the CMS associated with VM/XA, VM/ESA and VM/SP release 6. That is, if you are running VM/SP release 5 or earlier, you will not be able to take advantage of the debugger support for cross compiled programs, therefore you should not install the SAS/C CSL redistributables provided on this installation media. If you plan to use the mainframe for cross debugging, you will need to: 1. Optionally, install a subset of the SAS/C CSL redistributable files. If you need to install the SAS/C CSL redistributables on your mainframe, continue with the appropriate mainframe (MVS or CMS) section. For MVS, go to "Installing SAS/C CSL on MVS" on page 20. For CMS, go to "Installing SAS/C CSL on CMS" on page 22. 2. Provide support for the Network File System (NFS) client. Refer to SAS/C Cross-Platform Compiler and C++ Development System, Usage and Reference, Release 6.00 for administration and use of the NFS client support in the SAS/C debugger. Installing SAS/C CSL on MVS Perform the following steps to install SAS/C CSL on MVS. 1. Allocate Data Sets for Installation You will need to allocate (possibly using FTP or JCL) the following data sets to hold files that will be transferred from your UNIX system. Note: You should use the same value for CSLPRFX below, that you use in the install job, CROSSCSL. --------------------------------------------------------------------------------------------- Data Set Attributes --------------------------------------------------------------------------------------------- CSLPRFX.CNTL SPACE=(6160,(5,1,1)), RECFM=FB, DSORG=PO, LRECL=80, BLKSIZE=6160 LMPORT.OBJDS SPACE=(3120,(180,1)), RECFM=FB, DSORG=PS, LRECL=80, BLKSIZE=3120 CSLPRFX.PORTLLIB SPACE=(6120,(700,1,1)), RECFM=V, DSORG=PO, LRECL=255, BLKSIZE=6120 --------------------------------------------------------------------------------------------- 2. Transfer Files to MVS Your site probably has a standard method of transferring files between hosts, such as FTP (File Transfer Protocol). The transfer method that you use should perform an unaltered binary transfer of bytes. Below is an example of using FTP to transfer the needed CSL files to MVS. # ftp -v mvs << __EOF site RECFM=FB LRECL=80 BLOCKSIZE=6160 site BLOCKS site pri=5 sec=1 directory=1 mkdir CSLPRFX.cntl quote site RECFM=V LRECL=255 BLOCKSIZE=6120 quote site BLOCKS quote site pri=1800 sec=1 directory=1 mkdir CSLPRFX.portlib type ascii put ./sasccsl/mvs/crosscsl.jcl CSLPRFX.cntl(crosscsl) type binary quote site RECFM=FB LRECL=80 BLOCKSIZE=3120 put ./sasccsl/mvs/lmport.obj lmport.objds put ./sasccsl/mvs/cslrtl.lmp CSLPRFX.portlib(cslrtl) put ./sasccsl/mvs/rdload.lmp CSLPRFX.portlib(rdload) put ./sasccsl/mvs/smpload.lmp CSLPRFX.portlib(smpload) quit __EOF Which Files to Transfer to MVS When you ran the installation script, install.sh, the sasccsl/mvs directory was created in your installation location or directory. The sascsl/mvs directory contains the files needed for the MVS SAS/C CSL redistributables installation. Transfer (using your method) these SAS/C CSL Files Transfer the following SAS/C CSL files using the method you prefer. --------------------------------------------------------------------------------------------- File Definition --------------------------------------------------------------------------------------------- crosscsl.jcl is the install JCL. Move this file to CSLPRFX.CNTL(CROSSCSL). lmport.obj is the LMPORT utility object file. Move this file to LMPORT.OBJDS. cslrtl.lmp is the SAS/C CSL transient library. Move this file to CSLPRFX.PORTLIB(CSLRTL). rdload.lmp is the SAS/C CSL utility command library. Move this file to CSLPRFX.PORTLIB(RDLOAD). smpload.lmp is the SAS/C CSL sample command library. Move this file to CSLPRFX.PORTLIB(SMPLOAD). --------------------------------------------------------------------------------------------- 3. Edit the Installation Job, CROSSCSL You should find the installation job in CSLPRFX.CNTL(CROSSCSL). The first three lines of the CROSSCSL job contain the job card to be used for executing the job. Modify the ACCOUNT-CODE and PROGRAMMER-NAME values to reflect those used by your site. The next few lines in the CROSSCSL job have parameters that need to be modified. These parameters are: --------------------------------------------------------------------------------------------- Parameter Definition -------------------------------------------------------------------------------------------- CSLPRFX='SASC.CSL600' should reflect the CSLPRFX value used in "1. Allocate Data Sets for Installation" on page 20. PORTLIB='YOUR.PORTLIB.HERE' this is PREFIX.PORTLIB used in "1. Allocate Data Sets for Installation" on page 20. OBJDS='YOUR.LMPORT.OBJ' this is LMPORT.OBJDS used in "1. Allocate Data Sets for Installation" on page 20. -------------------------------------------------------------------------------------------- 4. Run the installation Job, CROSSCSL After modifying the JCL according to your site requirements, submit the CROSSCSL job. The CROSSCSL job will create the SAS/C CSL libraries listed below. You will need to make these libraries available for use in cross debugging. --------------------------------------------------------------------------------------------- Library Definition -------------------------------------------------------------------------------------------- CSLPRFX.LOADLIB SAS/C CSL transient library CSLPRFX.RD.LOAD SAS/C CSL redistributable utility library - contains NFS User Commands CSLPRFX.SAMPLE.LOAD SAS/C CSL sample library --------------------------------------------------------------------------------------------- Installing SAS/C CSL on CMS Perform the following steps to install SAS/C CSL on CMS. 1. Allocate a Minidisk for Installation Format an installation minidisk that contains 1700 4K blocks of space. Access the new minidisk and use this filemode in your transfer commands below. Note: It is recommended that you use a private minidisk for this installation, not a minidisk that contains any files from a previous SAS/C software installation. 2. Transfer Files to CMS Your site probably has a standard method of transferring files between hosts, such as FTP (File Transfer Protocol). The transfer method that you use should perform an unaltered binary transfer of bytes. Below is an example of using FTP to transfer the needed CSL files to CMS. # ftp -v cms << __EOF hash type ascii put ./sasccsl/cms/crosscsl.exc crosscsl.exec put ./sasccsl/cms/cslmerge.exc cslmerge.exec type binary put ./sasccsl/cms/cslrtl.llp cslrtl.portlib put ./sasccsl/cms/sasccsl.llp sasccsl.portlib put ./sasccsl/cms/mount.llp mount.portmod put ./sasccsl/cms/umount.llp umount.portmod put ./sasccsl/cms/nfslogin.llp nfslogin.portmod put ./sasccsl/cms/showmnt.llp showmnt.portmod put ./sasccsl/cms/cd.llp cd.portmod put ./sasccsl/cms/pwd.llp pwd.portmod put ./sasccsl/cms/ls.llp ls.portmod quote site FIX 80 put ./sasccsl/cms/llport.obj llport.text quit __EOF Which Files to Transfer to CMS When you ran the installation script, install.sh, the sasccsl/cms directory was created in your installation location or directory. The sasccsl/cms directory contains the files needed for the CMS SAS/C CSL redistributables installation. Transfer (using your method) these SAS/C CSL Files Transfer the following SAS/C CSL files using the method you prefer. --------------------------------------------------------------------------------------------- File Definition -------------------------------------------------------------------------------------------- crosscsl.exc is the installation EXEC. Move this file to CROSSCSL EXEC filemode cslmerge.exc is an EXEC to merge the transient libraries. Move this file to CSLMERGE EXEC filemode cslrtl.llp is the SAS/C CSL NFS transient library. Move this file to CSLRTL PORTLIB filemode sasccsl.llp is the SAS/C CSL RPC and some NFS transients. Move this file to SASCCSL PORTLIB filemode nfslogin.llp is a SAS/C CSL utility command. Move this file to NFSLOGIN PORTMOD filemode showmnt.llp is a SAS/C CSL utility command. Move this file to SHOWMNT PORTMOD filemode mount.llp is a SAS/C CSL utility command. Move this file to MOUNT PORTMOD filemode umount.llp is a SAS/C CSL utility command. Move this file to UMOUNT PORTMOD filemode cd.llp is a SAS/C CSL sample command. Move this file to CD PORTMOD filemode ls.llp is a SAS/C CSL sample command. Move this file to LS PORTMOD filemode pwd.llp is a SAS/C CSL sample command. Move this file to PWD PORTMOD filemode llport.obj is the LLPORT utility object file. Move this file to LLPORT TEXT filemode, RECFM F, LRECL 80. --------------------------------------------------------------------------------------------- 3. Run the installation EXEC, CROSSCSL Invoke CROSSCSL EXEC by issuing: CROSSCSL filemode --------------------------------------------------------------------------------------------- Variable Definition -------------------------------------------------------------------------------------------- filemode the minidisk formatted above that now contains files from your UNIX system. -------------------------------------------------------------------------------------------- The CROSSCSL EXEC creates the following files on minidisk filemode: --------------------------------------------------------------------------------------------- File Definition -------------------------------------------------------------------------------------------- LLPORT MODULE LLPORT installation utility CSLRTL LOADLIB SAS/C CSL NFS Transients SASCCSL LOADLIB SAS/C CSL RPC and some NFS Transients NFSLOGIN MODULE NFS User Command SHOWMNT MODULE NFS User Command MOUNT MODULE NFS User Command UMOUNT MODULE NFS User Command CD MODULE SAS/C CSL Sample Command LS MODULE SAS/C CSL Sample Command PWD MODULE SAS/C CSL Sample Command -------------------------------------------------------------------------------------------- You should make the minidisk (filemode) that contains the previous files available for use in cross debugging. 4. Optionally, Run CSLMERGE EXEC The SAS/C CSL transients were installed in a file named CSLRTL LOADLIB. You should merge this with the compiler transients (LSCRTL LOADLIB). The CSLMERGE EXEC will perform this task for you and you should run this exec before using the SAS/C CSL product. To execute the exec issue: CSLMERGE cslfilemode compfilemode --------------------------------------------------------------------------------------------- Variable Definition -------------------------------------------------------------------------------------------- cslfilemode is the SAS/C CSL minidisk compfilemode is the SAS/C compiler minidisk -------------------------------------------------------------------------------------------- These filemodes may be the same or different depending on where you installed your SAS/C CSL product. The compiler minidisk (specified as compfilemode) should be a write accessed disk. ============================================================================================================= Chapter 6: Installation Verification Verify SAS/C Cross-Platform Compiler Installation To verify the SAS/C Cross-Platform compiler installation, compile and link a sample C program. You will find the sample source file ftoc.c in the samples/c directory in your installation location. To compile and link ftoc.c, run the sascc370 command which was installed in your host/host/bin directory in your installation location, where host is h8x, s4x or r6x. Note: The example below creates an object file to transfer to MVS for the final linking and execution. If you have purchased support for CMS, you can run the sascc370 command with the -Tcms370 flag. This will create an object file for CMS, and the output is very similar to the output shown below for MVS. To compile and link ftoc.c for MVS, issue this command: sascc370 -v installdir/samples/c/ftoc.c --------------------------------------------------------------------------------------------- Variable Definition -------------------------------------------------------------------------------------------- installdir your installation location or directory -------------------------------------------------------------------------------------------- Note: In this example, sascc370 generates extra output because the -v switch is used. (The -v switch turns on the verbose mode of the driver and compiler components). The extra output should aid in verifying that the compiler installation is correct. The output is greatly reduced without the -v switch. You should see output from the sascc370 command similar to the following: SAS/C Compiler Driver V6.00.02 Copyright (C) 1996 SAS Institute Inc. INCLUDE='installdir/include' export INCLUDE installdir/host/host/bin/lc1 -dCROSS370=1 -cd -hu `-o/usr/tmp/sasccAAAa26869.q' `installdir/samples/ftoc.c' SAS/C Release 6.00.02 (Target 370 Cross Compiler) Copyright(c) 1996 by SAS Institute Inc. All Rights Reserved. *** No errors; No warnings; No user suppressed warnings installdir/host/host/bin/lc2 `-oftoc.o' `/usr/tmp/sasccAAAa26869.q' SAS/C Compiler(Phase 2)Release 6.00.02 Copyright(c) 1996 by SAS Institute Inc. All Rights Reserved. installdir/host/host/bin/cool -o a.out -Linstalldir ftoc.o installdir/lib/mvs/libc.a SAS/C (R) C Object Code Pre-linker Release 6.00.02 Copyright(c) 1996 by SAS Institute Inc. All Rights Reserved. cool: Note 1010: Pre-linking completed with return code = 0 Verify SAS/C Cross-Platform C++ Development System Installation To verify the SAS/C Cross-Platform C++ Development System installation, compile and link a sample C++ program. You will find the sample source file ftoc.cxx in the samples/cxx directory in your installation location. To compile and link ftoc.cxx, run the sasCC370 command which was installed in your host/host/bin directory in your installation location, where host is h8x, s4x or r6x. Note: The example below creates an object file to transfer to MVS for the final linking and execution. If you have purchased support for CMS, you can run the sasCC370 command with the -Tcms370 flag. This will create an object file for CMS, and the output is very similar to the output shown below for MVS. To compile and link ftoc.cxx for MVS, issue this command: sasCC370 -v installdir/samples/cxx/ftoc.cxx --------------------------------------------------------------------------------------------- Variable Definition -------------------------------------------------------------------------------------------- installdir your installation location or directory -------------------------------------------------------------------------------------------- Note: In this example, sasCC370 generates extra output because the -v switch is used. (The -v switch turns on the verbose mode of the driver and compiler components). The extra output should aid in verifying that the compiler installation is correct. The output is greatly reduced without the -v switch. You should see output from the sasCC370 command similar to the following: SAS/C Compiler Driver V6.00.02 Copyright (C) 1996 SAS Institute Inc. INCLUDE='installdir/include' export INCLUDE installdir/host/host/bin/cxx -Adigraph -DCROSS370=1 -XA -Hu `-mftoc' `installdir/samples/ftoc.cxx' `/usr/tmp/sasccAAAa27004.c' installdir/host/host/bin/lc1 -dCROSS370=1 -cd -hu -cxx `-sftoc' `-o/usr/tmp/sasccBAAa27004.q' `/usr/tmp/sasccAAAa27004.c' SAS/C Release 6.00.02 (Target 370 Cross Compiler) Copyright(c) 1996 by SAS Institute Inc. All Rights Reserved. *** No errors; No warnings; No user suppressed warnings installdir/host/host/bin/lc2 `-oftoc.o' `/usr/tmp/sasccBAAa27004.q' SAS/C Compiler(Phase 2)Release 6.00.02 Copyright(c) 1996 by SAS Institute Inc. All Rights Reserved. installdir/host/host/bin/cool -o a.out -Linstalldir ftoc.o installdir/libcxx.a installdir/libc.a SAS/C (R) C Object Code Pre-linker Release 6.00.02 Copyright(c) 1996 by SAS Institute Inc. All Rights Reserved. cool: Note 1010: Pre-linking completed with return code = 0 ============================================================================================================= Chapter 7: Code Maintenance SAS/C Usage Notes The Technical Support Division of SAS Institute Inc. provides machine readable usage notes and zaps for the SAS/C products to assist you in diagnosing and correcting known problems with the products. Your installation medium contains only the SAS/C usage notes, which were optionally installed in "Installing SAS/C(r) Cross-Platform Software on your UNIX(r) System" on page 5. Usage notes are intended to be used as a reference in the event that you encounter a problem with one of the products. If your problem has already been reported, it may be documented in a usage note. The usage note will indicate whether there is a zap to correct the problem. Cautions and warnings about side effects will also be described in the usage note. If you would like to receive a SAS/C Usage Note product (contains usage notes and zaps) for MVS or CMS, please call Technical Support at (919) 677-8008 or request them in writing from the SAS Institute Distribution Center. How to Receive Updates for SAS/C Cross-Platform Software The Technical Support Division of SAS Institute Inc. provides updates in the form of binary patches for SAS/C Cross-Platform Software to correct known problems with the products. The SAS Technical Support Division provides updates through the SAS Institute Bulletin Board System (SIBBS) and through Anonymous FTP Service. Refer to the SAS Technical Report C-114, A Guide for the SAS/C Compiler Consultant, Release 5.50 for an explanation of these services. How to Apply Updates The update and spatch utilities are provided as part of the SAS/C Cross-Platform Software product for applying maintenance in the form of binary patches to SAS/C Cross-Platform products. The complete format of the update and spatch utilities is given in "Utility Command Formats" on page 49. Updates may also be applied during your initial installation. See Chapter 3, "Installing SAS/C(r) Cross-Platform Software on your UNIX(r) System" on page 5. sascc.cfg Shell Script During the initial install process, a shell script called sascc.cfg was created. sascc.cfg is found in the bin directory for your host. That is, if your host operating system is SunOS 4.x.x, the script is in: install_location/host/s4x/bin/sascc.cfg The compiler drivers use the value returned from sascc.cfg to determine the install_location, and thus, determine (using its own knowledge of the host on which it is running) locations of: --------------------------------------------------------------------------------------------- Component Location -------------------------------------------------------------------------------------------- include files install_location/include standard library directory install_location/lib executable install_location/host//bin -------------------------------------------------------------------------------------------- The following is an example sascc.cfg: #! /bin/sh # # This shell script is modified by a site on installation. # it should simply echo the install location. # # If you move the location of the SAS/C Cross-Platform # compiler, you *must* alter this shell script. # echo "whatever the location is" If you move the compiler you need to change the sascc.cfg shell script to echo the new location of the compiler. The sascc.cfg shell script must be executable, and must be located somewhere on your PATH environment variable. Product License Maintenance for the SAS/C Cross-Platform C Compiler The license information for SAS/C Cross-Platform C Compiler is contained within a binary license data file, sascc_set.dat, provided on the installation media. You can use the dset utility to display the information in the sascc_set.dat file. The dset utility is described in Appendix A and is on the installation media. The information used to update the license is known as the setinit zap file. A copy of the setinit zap file used for your site is also provided as one of the files on the installation media. It is named sascc_set.zap. This zap file contains data that corresponds to the data that was used to individually license your copy of the product before shipment. Note: You do not need to initialize the license information during the installation procedure. When you renew your license, you will be provided with a new sascc_set.zap file. Update the license information by running the zap utility provided on the installation media and described in Appendix A. To update the license in the SAS/C Cross-Platform Compiler enter the following command: zap sascc_set.zap sascc_set.dat The zap utility modifies the sascc_set.dat file, which is your binary license data file. Product License Maintenance for the SAS/C Cross-Platform C++ Software The license information for SAS/C Cross-Platform C++ Software is contained within a binary license data file, sascd_set.dat, provided on the installation media. You can use the dset utility to display the information in the sascd_set.dat file. The dset utility is described in Appendix A and is on the installation media. The information used to update the license is known as the setinit zap file. A copy of the setinit zap file used for your site is also provided as one of the files on the installation media. It is named sascd_set.zap. This zap file contains data that corresponds to the data that was used to individually license your copy of the product before shipment. Note: You do not need to initialize the license information during the installation procedure. When you renew your license, you will be provided with a new sascd_set.zap file. Update the license information by running the zap utility provided on the installation media and described in Appendix A. To update the license in the SAS/C Cross-Platform C++ Software enter the following command: zap sascd_set.zap sascd_set.dat The zap utility modifies the sascd_set.dat file, which is your binary license data file. ============================================================================================================= Chapter 8: Customizing SAS/C Installation This chapter describes customizations for your SAS/C installation. In most cases these customizations are available in the form of zaps. The customization zaps should be applied to the SAS/C resident and all-resident libraries on the cross compiler platform, as well as to the SAS/C Transient Library on the mainframe. The OBJZAP utility is provided to install zaps to the SAS/C libraries on the cross compiler platform. The OBJZAP utility is documented in Appendix A, "Utility Command Formats" on page 49. To apply the customization zaps to the SAS/C Transient Library, use the APPLYZAP utility which is provided as part of the SAS/C Usage Note Product. This product may be obtained by contacting SAS/C Technical Support and requesting a copy of the latest Usage Note Product. Refer to Technical Report C-114, Guide for the SAS/C Compiler Consultant, for directions on using the APPLYZAP utility on the mainframe. If you distribute all-resident applications you may need to provide a method for your customers to modify the installation defaults listed in this chapter. We recommend that you review the APPLYZAP utility, as documented in Technical Report C-114, Guide for the SAS/C Compiler Consultant, and provide your customers with the all-resident customization zaps and the APPLYZAP utility. Making the Transient Library Available to C Programs on MVS The SAS/C product includes several transient libraries, which provide dynamically loaded run-time support for programs compiled with the SAS/C Compiler. Two versions of the transient library are provided: one for CICS applications and the other for non-CICS applications. In order to increase the efficiency of C programs, the SAS/C runtime library is divided into two parts: resident and transient. Resident library modules are linked in with the executable program. Transient library modules are loaded as needed at runtime. This library structure reduces the memory requirements of C programs by including modules as needed during execution, instead of including all possibly required modules in the program at link-edit time. Additionally, this organization allows transient library modules to be shared among many programs (if the modules are loaded into the LPA), which reduces real memory use and the I/O overhead involved in loading. Perhaps most importantly, this organization allows MVS/XA or MVS/ESA C programs to run above the 16-megabyte line, while transient library modules that interface to I/O are loaded below the line (as required by MVS/XA or MVS/ESA). In order to be available for loading at runtime, the appropriate transient libraries must be available on every system on which a SAS/C program is run. To facilitate this process, the SAS/C transient libraries can be redistributed royalty-free to sites which use programs that were developed with the SAS/C product. Note: By default, most of the SAS/C transient library is loaded above the 16 megabyte line, but some pieces (for example, low-level I/O modules) have AMODE 24 requirements and so must reside below the line. Finding the Transient Library In "Installing the Independent SAS/C Cross-Platform Software on MVS" on page 8, you copied the transient library into a disk data set. In order for C programs to find transient modules at runtime, you must make the modules available in one of the places where C programs search for transient modules. The search order is listed below. See "Making the CICS Transient Library Available to CICS on MVS" on page 41 for instructions on making the Transient Library available under CICS. 1. Data sets allocated to CTRANS (if any) 2. Any defined tasklib data sets. For instances. when a SAS/C program is run under ISPF, the DDname ISPLLIB is defined as a tasklib. 3. STEPLIB (if any) 4. JOBLIB (if any) 5. the LPA (Link Pack Area) 6. Linklist libraries You can make the transient library available to a C program using any of these locations. The following describes the considerations that apply to each location. Note: If running under ISPF, a possible search order is listed below, but consult your ISPF documentation for your exact search path. 1. CTRANS 2. tasklib (ISPLLIB) 3. STEPLIB 4. LPA 5. LINKLIST Finding the Transient Library under the OpenEdition Shell For programs running under the OpenEdition Shell (or invoked via the OpenEdition exec function), the following search order is used. 1. A data set named by the ddn_CTRANS environment variable, if any. 2. Any data set defined by the STEPLIB environment variable. 3. The LPA (Link Pack Area) 4. Linklist libraries If you do not place the transient libraries in the linklist or LPA and intend to use the OpenEdition shell, we recommend you modify /etc/profile to define the ddn_CTRANS variable to identify the transient library data set. Also note that if you expect to run setuid or setgid programs written in SAS/C, you should put the library in either linklist or LPA. Alternatively, you can include the transient library in the STEPLIB environment variable list. In this case, you must also include the transient library data set name in the OpenEdition "sanction list" defined by the BPXPRMnn member of SYS1.PARMLIB. CTRANS Use of the CTRANS DDname is convenient for testing purposes when you are installing a new version of the transient library. Since C programs search the libraries allocated to CTRANS first, you can test a new version of the transient library while an older version remains installed. Sites that are evaluating a SAS/C program and may therefore want to remove the transient library at any time could also use CTRANS to access the transient library. CTRANS is particularly useful in TSO because, unlike STEPLIBs, CTRANS can be allocated dynamically and thus requires no modifications to logon procedures. STEPLIBs or JOBLIBs STEPLIBs or JOBLIBs are useful for sites that do not want to put the transient library in the LPA or linklist. They are also useful for testing and evaluation. LPA The LPA is the recommended location for SAS/C transient library modules. Installing the transient library into the LPA decreases memory requirements for C programs and reduces system paging if the C library is heavily used. Installing the transient library into the LPA simplifies JCL and TSO procedures for calling C programs since CTRANS, JOBLIBs and STEPLIBs are not required. If you do not have enough virtual storage available to copy the entire library to an LPA library, it is recommended that you copy a select list of modules to the LPA library. A recommended minimal list of modules to place in the LPA library is LSCARGP, LSCDIND, LSCDMGR, LSCOSEQ, LSCOTERM, LSCSIO, LSCIDDN, LSCIDSN, and LSCITSO. The debugger load module L$DEBUG is also a very good candidate for inclusion if your site also has the SAS/C Compiler and makes frequent use of the debugger. Of course, any modules that are not copied into the LPA must be made available through one of the other locations (in this case, the linklist would usually be the most appropriate). IMPORTANT: The modules LSCEVRG and L$DCST must NOT be moved into the LPA. Placement of these modules into LPA will cause execution errors. LINKLIST Depending on your local site procedures, you would make transient library modules available in the linklist either by naming the transient library data set (copied from the installation medium in "Installing the Independent SAS/C Cross-Platform Software on MVS" on page 8) in the LNKLSTxx member of SYS1.PARMLIB or by copying the modules into some other library whose name is already in the linklist (perhaps SYS3.LINKLIB). This has none of the performance advantages of using the LPA but does not have the disadvantage of the LPA which decreases your system's available private area. It does share the advantage of making the transient library modules available without the need to code CTRANS, JOBLIBs, or STEPLIBs. Customizing SAS/C Help Information on MVS The debugger help file prefix.DBGHELP is NOT a TSO format help file, but has a special internal format which the SAS/C Debugger uses. From an MVS standpoint, the file is a standard physical sequential file, it cannot be a member of a PDS, and it must have the following DCB attributes when it is copied or allocated: DCB=(DSORG=PS,RECFM=FBS,LRECL=80,BLKSIZE=4080) The prefix.DBGHELP can be made available to users by placing the prefix.CLIST member L$DBHELP in your system CLIST library. When debugger help is requested and no DBGHELP DDname is allocated, the debugger attempts to invoke the L$DBHELP CLIST to allocate the help file. The file tailoring procedures automatically update this CLIST to reflect the installation's name chosen for prefix.DBGHELP. Note: prefix.HELP needs to be made available to TSO by either concatenating prefix.HELP to the DDname SYSHELP or by copying the members to some larger general-purpose library. Customizing Temporary File Defaults on MVS This section describes a library zap that can be used by MVS sites that want to change the defaults for temporary file UNIT and SPACE. The default UNIT is VIO, and the default SPACE allocation is (TRK,(50,0)). C programs that issue UNIX-style I/O requests use temporary files for work areas. If the SYSTMPnn DDnames are not provided, temporary files are dynamically allocated to UNIT=VIO. This causes a problem for sites without UNIT=VIO defined. The following generic zap must be applied to the transient library (prefix.LINKLIB) using APPLYZAP (see Technical Report C-114 for details on using the APPLYZAP program) in order to change the temporary unit name or space allocation. ********************************************************************* * NAME: Z6003101 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 07JUN94 STATUS: DZ+UT USAGE-ID: LIBRARY-C3101 * * VIO as a unit name not defined at some installations * * NOTE: APPLY TO SASC.LINKLIB (TRANSIENT RUN-TIME LIBRARY IN * LOAD MODULE FORMAT) USING THE APPLYZAP UTILITY. * * NOTE: THE USER MUST CODE THEIR OWN VALUES FOR UNIT, * PRIMARY, AND SECONDARY SPACE. * XXXXXX - PRIMARY TRACK ALLOCATION * YYYYYY - SECONDARY TRACK ALLOCATION * ZZZZZZZZ - UNIT NAME * NAME L$CITMP L$C$VIOO LINKLIB CHECKSUM VER 0000 0000,0032 VER 0004 0000,0000 VER 0008 E5C9,D640,4040,4040 * REP 0000 00XX,XXXX REP 0004 00YY,YYYY REP 0008 ZZZZ,ZZZZ ********************************************************************* * IDRDATA Z6003101 Note: You do not have to replace data that you are not changing. For example, to change the unit name to DISK in the transient library, use the following: NAME L$CITMP L$C$VIOO LINKLIB VER 0008 E5C9D640 REP 0008 C4C9E2D2 If you are using the all-resident library, the following generic zap must be applied to lib/mvs/libares.a in your installation directory using OBJZAP. All relevant programs must be relinked. Instead of relinking, you may apply the zap to the L$C$VIOO CSECT in the appropriate user load module. Note that you must change the module name in the NAME statement to refer to your user load module when applying the zap to a user program. ********************************************************************* * NAME: Z6003101 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 07JUN94 STATUS: DZ+UT USAGE-ID: LIBRARY-C3101 * * VIO as a unit name not defined at some installations * * NOTE: APPLY TO lib/mvs/libares.a (ALL-RESIDENT * RUN-TIME LIBRARY IN OBJECT FORMAT) USING THE OBJZAP * UTILITY. * * NOTE: RELINK OR ZAP ANY ALL-RESIDENT PROGRAMS WHICH INCLUDE * THIS MODULE. * * NOTE: THE USER MUST CODE THEIR OWN VALUES FOR UNIT, * PRIMARY, AND SECONDARY SPACE. * XXXXXX - PRIMARY TRACK ALLOCATION * YYYYYY - SECONDARY TRACK ALLOCATION * ZZZZZZZZ - UNIT NAME * NAME L$CITMP L$C$VIOO CHECKSUM VER 0000 0000,0032 VER 0004 0000,0000 VER 0008 E5C9,D640,4040,4040 * REP 0000 00XX,XXXX REP 0004 00YY,YYYY REP 0008 ZZZZ,ZZZZ *********************************************************************** * IDRDATA Z6003101 Note: You do not have to replace data that you are not changing. For example, to change the unit name to DISK in the transient library, use the following: NAME L$CITMP L$C$VIOO VER 0008 E5C9D640 REP 0008 C4C9E2D2 Customizing Dynamic Allocation Defaults on MVS This section describes a zap that can be used by MVS sites that wish to change defaults for the dynamic allocation of new permanent data sets. (This is performed when "DSN:" or "TSO:" style file names are used by C programs calling fopen() or other library functions that accept a filename.) The current default is equivalent to SPACE=(1000,(10,3,5)). The following are examples of why you might wish to apply this zap: . The default space allocation is too large or too small. . Standards at your site call for use of a particular unit name or volume serial for such data sets. . You wish to allocate data sets created by C programs using a specific SMS data class or storage class. The following generic zap must be applied to the transient library (prefix.LINKLIB) using APPLYZAP (see Technical Report C-114 for details on using the APPLYZAP program) in order to change the default allocations. Certain areas being zapped are applicable only to sites using SMS (IBM's Storage Management Subsystem). Do not change these fields if SMS is not installed and operational. ********************************************************************* * NAME: Z6004048 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 07JUN94 STATUS: DZ+UT USAGE-ID: LIBRARY-C4048 * * How to change the defaults for alcunit=, space= and extend= amparms * * NOTE: APPLY TO SASC.LINKLIB (TRANSIENT RUN-TIME LIBRARY IN * LOAD MODULE FORMAT) USING THE APPLYZAP UTILITY. * * NOTE: THE USER MUST CODE THEIR OWN VALUES FOR PRIMARY AND * SECONDARY SPACE, AVERAGE BLOCK LENGTH, NUMBER OF * DIRECTORY BLOCKS, FLAGS, UNIT NAME, VOLUME, DATA CLASS, * STORAGE CLASS AND MANAGEMENT CLASS. IF PADDING IS * NEEDED, THESE VALUES SHOULD BE PADDED WITH BLANKS. * * IF SMS IS NOT INSTALLED AND ACTIVE, DO NOT INSTALL A DATA * CLASS, STORAGE CLASS OR MANAGEMENT CLASS, AND DO NOT SET * THE 08, 04, OR 02 FLAG BITS. * * XXXXXX - PRIMARY TRACK ALLOCATION * YYYYYY - SECONDARY TRACK ALLOCATION * LLLLLL - AVERAGE BLOCK LENGTH * NNNNNN - NUMBER OF DIRECTORY BLOCKS * FF - FLAGS (80=TRACKS, 40=CYLINDERS, 20=BLOCKS * 08=RECORDS, 04=KILO-RECORDS, * 02=MEGA-RECORDS. SET THE 10 BIT TO * DEFAULT RLSE=YES.) * UUUUUUUUUUUUUUUU - UNIT NAME * ZZZZZZZZ - VOLUME * DDDDDDDD - DEFAULT DATA CLASS * SSSSSSSS - DEFAULT STORAGE CLASS * MMMMMMMM - DEFAULT MANAGEMENT CLASS * END NAME L$CIDSN L$C$DSN= LINKLIB CHECKSUM VER 0008 0000,0A VER 000B 0000,03 VER 000E 0003,E8 VER 0011 0000,05 VER 0014 20 VER 0015 0000,0000,0000,0000 VER 001D 0000,0000,0000 VER 0023 0000,0000,0000,0000 VER 002B 0000,0000,0000,0000 VER 0033 0000,0000,0000,0000 * REP 0008 XXXX,XX REP 000B YYYY,YY REP 000E LLLL,LL REP 0011 NNNN,NN REP 0014 FF REP 0015 UUUU,UUUU,UUUU,UUUU REP 001D ZZZZ,ZZZZ,ZZZZ REP 0023 DDDD,DDDD,DDDD,DDDD REP 002B SSSS,SSSS,SSSS,SSSS REP 0033 MMMM,MMMM,MMMM,MMMM ********************************************************************* IDRDATA Z6004048 Note: You do not have to replace data that you are not changing. For example, to make the default space allocation for new permanent data sets two cylinders of primary space and one cylinder of secondary space, use the following: NAME L$CIDSN L$C$DSN= LINKLIB VER 0008 00000A VER 000B 000003 VER 0014 20 REP 0008 000002 REP 000B 000001 REP 0014 40 If you are using the all-resident library, the following generic zap must be applied to lib/mvs/libares.a in your installation directory using OBJZAP. All relevant programs must be relinked. Instead of relinking, you may apply the zap to the L$C$DSN= CSECT in the appropriate user load module. Note that you must change the module name in the NAME statement to refer to your user load module when applying the zap to a user program. Certain areas being zapped are applicable only to sites using SMS (IBM's Storage Management Subsystem). Do not change these fields if SMS is not installed and operational. ********************************************************************* * NAME: Z6004048 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 07JUN94 STATUS: DZ+UT USAGE-ID: LIBRARY-C4048 * * How to change the defaults for alcunit=, space= and extend= amparms * * NOTE: APPLY TO lib/mvs/libares.a (ALL-RESIDENT * RUN-TIME LIBRARY IN OBJECT FORMAT) USING THE OBJZAP * UTILITY. * * NOTE: RELINK OR ZAP ANY ALL-RESIDENT PROGRAMS WHICH INCLUDE * THIS MODULE. * * NOTE: THE USER MUST CODE THEIR OWN VALUES FOR PRIMARY AND * SECONDARY SPACE, AVERAGE BLOCK LENGTH, NUMBER OF * DIRECTORY BLOCKS, FLAGS, UNIT NAME, VOLUME, DATA CLASS, * STORAGE CLASS AND MANAGEMENT CLASS. IF PADDING IS * NEEDED, THESE VALUES SHOULD BE PADDED WITH BLANKS. * * IF SMS IS NOT INSTALLED AND ACTIVE, DO NOT INSTALL A DATA * CLASS, STORAGE CLASS OR MANAGEMENT CLASS, AND DO NOT SET * THE 08, 04, OR 02 FLAG BITS. * * XXXXXX - PRIMARY TRACK ALLOCATION * YYYYYY - SECONDARY TRACK ALLOCATION * LLLLLL - AVERAGE BLOCK LENGTH * NNNNNN - NUMBER OF DIRECTORY BLOCKS * FF - FLAGS (80=TRACKS, 40=CYLINDERS, 20=BLOCKS * 08=RECORDS, 04=KILO-RECORDS, * 02=MEGA-RECORDS. SET THE 10 BIT TO * DEFAULT RLSE=YES.) * UUUUUUUUUUUUUUUU - UNIT NAME * ZZZZZZZZ - VOLUME * DDDDDDDD - DEFAULT DATA CLASS * SSSSSSSS - DEFAULT STORAGE CLASS * MMMMMMMM - DEFAULT MANAGEMENT CLASS * END NAME L$CIDSN L$C$DSN= CHECKSUM VER 0008 0000,0A VER 000B 0000,03 VER 000E 0003,E8 VER 0011 0000,05 VER 0014 20 VER 0015 0000,0000,0000,0000 VER 001D 0000,0000,0000 VER 0023 0000,0000,0000,0000 VER 002B 0000,0000,0000,0000 VER 0033 0000,0000,0000,0000 * REP 0008 XXXX,XX REP 000B YYYY,YY REP 000E LLLL,LL REP 0011 NNNN,NN REP 0014 FF REP 0015 UUUU,UUUU,UUUU,UUUU REP 001D ZZZZ,ZZZZ,ZZZZ REP 0023 DDDD,DDDD,DDDD,DDDD REP 002B SSSS,SSSS,SSSS,SSSS REP 0033 MMMM,MMMM,MMMM,MMMM ********************************************************************* IDRDATA Z6004048 Note: You do not have to replace data that you are not changing. For example, to make the default space allocation for new permanent data sets two cylinders of primary space and one cylinder of secondary space, use the following: NAME L$CIDSN L$C$DSN= VER 0008 00000A VER 000B 000003 VER 0014 20 REP 0008 000002 REP 000B 000001 REP 0014 40 Customizing Data-in-Virtual Defaults on MVS This section describes a zap that is useful for MVS sites that wish to change the default values used by the library in its algorithm for buffering Data-In-Virtual objects. The algorithm is described in detail in the section "I/O Functions" in the manual SAS/C Library Reference, Volume 1, Second Edition. You might wish to apply this zap if the default buffer size and/or maximum number of buffers are too large or too small for your site. The following generic zap must be applied to the transient library (prefix.LINKLIB) using APPLYZAP (see Technical Report C-114 for details on using the APPLYZAP program) in order to change the default buffer size and/or maximum number of buffers. ********************************************************************* * NAME: Z6005342 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 19FEB96 STATUS: DZ+UT USAGE-ID: LIBRARY-C5342 * * How to change the defaults for Data-In-Virtual amparms * * NOTE: APPLY TO SASC.LINKLIB (TRANSIENT RUN-TIME LIBRARY IN * LOAD MODULE FORMAT) USING THE APPLYZAP * UTILITY. * * THE USER MUST CODE THEIR OWN VALUES FOR THE DEFAULT * BUFFER SIZE AND/OR THE DEFAULT MAXIMUM NUMBER OF BUFFERS. * * XXXXXXXX - DEFAULT NUMBER OF 4K PAGES * YYYYYYYY - DEFAULT MAXIMUM NUMBER OF BUFFERS * * END NAME L$CWPSO L$C$LDSO LINKLIB CHECKSUM VER 0000 0000,0040 VER 0004 0000,0004 REP 0000 XXXX,XXXX REP 0004 YYYY,YYYY ********************************************************************* IDRDATA Z6005342 Note: You do not have to replace data that you are not changing. For example, to make the default buffer size 1024K (256 - 4K pages), use the following: NAME L$CWPSO L$C$LDSO LINKLIB VER 0000 0000,0040 REP 0000 0000,0100 If you are using the all-resident library, the following generic zap must be applied to lib/mvs/libares.a in your installation directory using OBJZAP. All relevant programs must be relinked. Instead of relinking, you may apply the zap to the L$C$LDSO CSECT in the appropriate user load module. Note that you must change the module name in the NAME statement to refer to your user load module when applying the zap to a user program. *********************************************************************** * NAME: Z6005342 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 19FEB96 STATUS: DZ+UT USAGE-ID: LIBRARY-C5342 * * How to change the defaults for Data-In-Virtual amparms * * NOTE: APPLY TO lib/mvs/libares.a (ALL-RESIDENT * RUN-TIME LIBRARY IN OBJECT FORMAT) USING THE OBJZAP * UTILITY. * * NOTE: RELINK OR ZAP ANY ALL-RESIDENT PROGRAMS WHICH INCLUDE * THIS MODULE. * * THE USER MUST CODE THEIR OWN VALUES FOR THE DEFAULT * BUFFER SIZE AND/OR THE DEFAULT MAXIMUM NUMBER OF BUFFERS. * * XXXXXXXX - DEFAULT NUMBER OF 4K PAGES * YYYYYYYY - DEFAULT MAXIMUM NUMBER OF BUFFERS * * END NAME L$CWPSO L$C$LDSO CHECKSUM VER 0000 0000,0040 VER 0004 0000,0004 REP 0000 XXXX,XXXX REP 0004 YYYY,YYYY ********************************************************************* IDRDATA Z6005342 Note: You do not have to replace data that you are not changing. For example, to make the default buffer size 1024K (256 - 4K pages), use the following: NAME L$CWPSO L$C$LDSO VER 0000 0000,0040 REP 0000 0000,0100 Customizing CICS Library Support In "Installing the Independent SAS/C Cross-Platform Software on MVS" on page 8, the CICS transient library was copied into a disk data set. In order to run C programs in a CICS environment you must make the CICS transient library available to CICS, update the CICS PPT, PCT, and DCT tables, and modify the CICS start-up JCL. Making the CICS Transient Library Available to CICS on MVS There are two ways to make the transient library available to CICS. One way is to add the CICS transient library data set name to the DFHRPL concatenation of libraries in the CICS start-up JCL. Here is a sample DD statement: // DD DISP=SHR,DSNAME=prefix.CICSLOAD A second method is to place the CICS transient library routines in the MVS Link Pack Area (LPA) and take the necessary steps to build a CICS Application Load Table (ALT). Refer to the appropriate CICS manuals for further details on the steps necessary to implement an ALT. Defining the CICS Transient Library Programs in the CICS PPT on MVS If your site uses the RDO (Resource Definition On-line) facilities of CICS, you can use the RDO definitions in the CICSCSD member which was unloaded from the installation medium into the prefix.CNTL data set in "Installing the Independent SAS/C Cross-Platform Software on MVS" on page 8, as input to the IBM utility program DFHCSDUP to define the required PPT entries in your CSD (CICS System Definition) file. The RDO definitions as they appear in that member are as follows: DELETE GROUP(SASC600) DEFINE PROGRAM(LSHABTRH) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHALNK) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHARGP) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHCST) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHDBUG) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHDBUGM) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHDCICS) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHDMGR) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHDSPL) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHISPL) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHITD) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHITDB) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHKOPR) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHLDBCS) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHNCOM) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHNDBA) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHOSEQ) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHRCOM) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHSGNL) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHSIO) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHSTG) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHSTGM) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHXEVV) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWIO) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG1) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG2) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG3) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG4) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG5) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG6) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG7) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG8) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHWNG9) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE PROGRAM(LSHXEVV) LANGUAGE(ASSEMBLER) GROUP(SASC600) DEFINE TRANSACTION(DBUG) PROGRAM(LSHDBUG) GROUP(SASC600) LIST GROUP(SASC600) OBJECTS After the group SASC600 is added to your CSD the group must be installed before CICS can use the definitions. Either use RDO to install the group each time CICS is initialized or add the group name to a list that appears in the GRPLIST operand of the SIT (System Initialization Table). See the appropriate CICS manuals for more information on RDO. Alternatively, you can use the CICSPPT member to update your installation's PPT (processing program table). CICSPPT was unloaded from the installation medium into the prefix.CNTL data set in "Installing the Independent SAS/C Cross-Platform Software on MVS" on page 8. The PPT entries as they appear in that member are as follows: DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHABTRH DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHALNK DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHARGP DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHCST DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHDBUG DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHDBUGM DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHDCICS DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHDMGR DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHDSPL DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHISPL DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHITD DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHITDB DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHKOPR DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHLDBCS DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHNCOM DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHNDBA DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHOSEQ DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHRCOM DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHSGNL DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHSIO DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHSTG DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHSTGM DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHXEVV DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWIO DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG1 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG2 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG3 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG4 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG5 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG6 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG7 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG8 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHXEVV DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHWNG9 DFHPPT TYPE=ENTRY,PGMLANG=ASSEMBLER,PROGRAM=LSHXEVV Defining the SAS/C Debugger Front-end Transaction in the CICS PCT on MVS If you plan to use the SAS/C Debugger on CICS then you must define the front-end transaction either in the PCT (Program Control Table) or via an RDO definition. If your site uses RDO to define transactions then you can use the transaction definition that is included with all the program definitions in the CICSCSD member which was previously unloaded from the installation medium into the prefix.CNTL data set. The definition which appears in that file is as follows: DEFINE TRANSACTION(DBUG) PROGRAM(LSHDBUG) GROUP(SASC600) Alternatively, if your site uses tables to define transactions then you can use the CICSPCT member of the prefix.CNTL data set to update your PCT. The PCT entry in that member appears as follows: DFHPCT TYPE=ENTRY,TRANSID=DBUG,PROGRAM=LSHDBUG Defining CICS Extrapartition Queues in the CICS DCT on MVS You can use the CICSDCT member to update your installation's DCT (Destination Control Table). The CICSDCT member was unloaded from the installation medium into the prefix.CNTL data set in "Installing the Independent SAS/C Cross-Platform Software on MVS" on page 8. The DCT entries as they appear in that member are as follows: STDOUT DFHDCT TYPE=SDSCI, USED BY SAS/C FOR STDOUT + DSCNAME=STDOUT, + BLKSIZE=1370, + RECSIZE=133, + RECFORM=VARBLKA, + TYPEFLE=OUTPUT, + BUFNO=1 STDERR DFHDCT TYPE=SDSCI, USED BY SAS/C FOR STDERR + DSCNAME=STDERR, + BLKSIZE=1370, + RECSIZE=133, + RECFORM=VARBLKA, + TYPEFLE=OUTPUT, + BUFNO=1 * * RECSIZE IS FOR WIDE REPORTS, PREFIXED WITH TERMID/TRANID, * PLUS FOUR BYTES FOR RECORD LENGTH (LLBB) * STGRPT DFHDCT TYPE=SDSCI, USED BY SAS/C FOR =STORAGE REPORTS + DSCNAME=STGRPT, + BLKSIZE=1450, + RECSIZE=145, 133 + 8 + 4 + RECFORM=VARBLK, + TYPEFLE=OUTPUT, + BUFNO=1 SASO DFHDCT TYPE=EXTRA, + DESTID=SASO, USED BY SAS/C FOR STDOUT + DSCNAME=STDOUT, + RSL=PUBLIC ALLOW ANY TRANSACTION TO ACCESS SASE DFHDCT TYPE=EXTRA, + DESTID=SASE, USED BY SAS/C FOR STDERR + DSCNAME=STDERR, + RSL=PUBLIC ALLOW ANY TRANSACTION TO ACCESS SASR DFHDCT TYPE=EXTRA, + DESTID=SASR, USED BY SAS/C FOR =STORAGE REPORTS + DSCNAME=STGRPT, + RSL=PUBLIC ALLOW ANY TRANSACTION TO ACCESS The RECFORM, RECSIZE, and BLKSIZE parameters specified on the DFHDCT TYPE=SDSCI macros contain our recommended values. They may be freely modified at your discretion. You will have to COLD start your newly modified DCT for the changes to take effect. The symbolic names of the extrapartition destinations (SASE, SASO, and SASR) are the default names used by the library. These names may be changed if that is required. See "Changing Default Names for CICS Modules and TD Queues" on page 45 for more information before making any changes to these names. Allocating the CICS Extrapartition Transient Data Queues on MVS This installation step consists of allocating data sets for the CICS extrapartition transient data queues. You can use the CICSALOC member which was unloaded from the installation medium into the prefix.CNTL file in "Installing the Independent SAS/C Cross-Platform Software on MVS" on page 8 to allocate these files. The following is a listing of the job CICSALOC extracted from your installation medium: //CICSALOC JOB (ACCOUNT INFORMATION),'PROGRAMMER',MSGCLASS=A, // MSGLEVEL=(1,1),TIME=(5,00) //* //********************************************************************* //* DOC: ALLOCATE THE CICS EXTRAPARTITION TRANSIENT DATA FILES. //* REFER: //* DATE: //* NOTE: MODIFY THE SPACE REQUIREMENTS AS APPROPRIATE //********************************************************************* //* //ALLOCATE EXEC PGM=IEFBR14 //STDERR DD DSN=&TDPREFX..STDERR, // DISP=(NEW,CATLG),UNIT=&UNIT, // VOL=SER=&DISKVOL, // SPACE=(CYL,(2,2)), // DCB=(RECFM=VBA,LRECL=133,BLKSIZE=1370) //STDOUT DD DSN=&TDPREFX..STDOUT, // DISP=(NEW,CATLG),UNIT=&UNIT, // VOL=SER=&DISKVOL, // SPACE=(CYL,(2,2)), // DCB=(RECFM=VBA,LRECL=133,BLKSIZE=1370) //STGRPT DD DSN=&TDPREFX..STGRPT, // DISP=(NEW,CATLG),UNIT=&UNIT, // VOL=SER=&DISKVOL, // SPACE=(CYL,(2,2)), // DCB=(RECFM=VB,LRECL=145,BLKSIZE=1490) Review space allocations for the data sets and change them as appropriate. Modifying the CICS Start-up JCL on MVS Once the extrapartition transient data queues have been allocated you must include DD statements that reference them in the CICS start-up JCL. The following are sample DD statements. Be sure to use the data set names that were specified in "Allocating the CICS Extrapartition Transient Data Queues on MVS" on page 44. //STDERR DD DISP=SHR,DSNAME=CICS.SASC.STDERR //STDOUT DD DISP=SHR,DSNAME=CICS.SASC.STDOUT //STGRPT DD DISP=SHR,DSNAME=CICS.SASC.STGRPT Changing Default Names for CICS Modules and TD Queues This section describes a zap that is useful for CICS sites that wish to change the default values used by the library for the names of the CICS transient load modules and/or the extrapartition transient data queues. Unless you have a very good reason for doing so, we recommend that you DO NOT change these defaults. You might wish to apply this zap if the default extrapartition transient data queue names (SASE, SASO, and SASR) are already in use at your site. Note: If you change the default three character prefix for the transient data queue names and this is not done during product installation, then all relevant user application programs must be relinked. Instead of relinking, you may apply the zap to the L$C$PFXH CSECT in the appropriate user load module. Note that you must change the module name in the NAME statement to refer to your user load module when applying the zap to a user program. Two CICS transient library programs must also be zapped: LSHSTG and LSHSTGM. These programs are invoked by the library to support the =storage run-time option. Similarly, you might wish to apply this zap if the default CICS transient library program names (which, by default, all start with the three character prefix LSH) are already in use at your site. Note: If you decide to change the three character load module name prefix you must also modify the PPT entries (see "Defining the CICS Transient Library Programs in the CICS PPT on MVS" on page 41). In addition, the load modules in prefix.CICSLOAD must be renamed as well. It is important that the alias names for these members be preserved, otherwise it will be impossible to apply zaps and other maintenance that you receive from the Institute. The following generic zap may be applied to the CICS resident libraries (lib/cics/libc.a and lib/cicsvse/libc.a in your installation directory) using OBJZAP in order to change the default transient data queue and/or transient load module names. ********************************************************************* * NAME: Z6000158 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 27FEB96 STATUS: DZ+UT USAGE-ID: LIBRARY-C0158 * * How to change default CICS TD queue and transient library names * * NOTE: APPLY TO lib/cics/libc.a (CICS RESIDENT LIBRAY IN OBJECT * FORMAT) AND lib/cicsvse/libc.a (CICS/VSE RESIDENT * LIBRARY IN OBJECT FORMAT) USING THE OBJZAP UTILITY. * THE AFFECTED PROGRAM SHOULD BE RELINKED. * * THE USER MUST CODE THEIR OWN VALUES FOR THE * DEFAULT THREE CHARACTER PREFIX OF THE CICS * EXTRAPARTITION TRANSIENT DATA QUEUE NAMES AND/OR * THE CICS TRANSIENT LIBRARY PROGRAM NAMES. * * EEEE,EE - DEFAULT EXTRAPARTITION TD QUEUE NAME PREFIX * FFFF,FF - DEFAULT TRANSIENT LIBRARY PROGRAM NAME PREFIX * * * END NAME L$C$PFXH L$C$PFXH CHECKSUM VER 0000 E2C1,E200 VER 0004 D3E2,C800 REP 0000 EEEE,EE REP 0004 FFFF,FF ALIAS L$C$PFX CHECKSUM *********************************************************************** IDRDATA Z6000158 The following generic zap may be applied to the CICS transient library. *********************************************************************** * NAME: Z6000158 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 27FEB96 STATUS: DZ+UT USAGE-ID: LIBRARY-C0158 * * How to change default CICS TD queue and transient library names * * NOTE: APPLY TO SASC.CICSLOAD (LOAD MODULE FORM * CICS TRANSIENT LIBRARY) USING THE APPLYZAP UTILITY. * * THE USER MUST CODE THEIR OWN VALUES FOR THE * DEFAULT THREE CHARACTER PREFIX OF THE CICS * EXTRAPARTITION TRANSIENT DATA QUEUE NAMES AND/OR * THE CICS TRANSIENT LIBRARY PROGRAM NAMES. * * EEEE,EE - DEFAULT EXTRAPARTITION TD QUEUE NAME PREFIX * FFFF,FF - DEFAULT TRANSIENT LIBRARY PROGRAM NAME PREFIX * * * END NAME L$DSTG L$C$PFXH CICSLOAD VER 0000 E2C1,E200 VER 0004 D3E2,C800 REP 0000 EEEE,EE REP 0004 FFFF,FF CHECKSUM IDRDATA Z6000158 NAME L$DSTGM L$C$PFXH CICSLOAD VER 0000 E2C1,E200 VER 0004 D3E2,C800 REP 0000 EEEE,EE REP 0004 FFFF,FF CHECKSUM IDRDATA Z6000158 NAME L$CDBUG L$C$PFXH CICSLOAD VER 0000 E2C1,E200 VER 0004 D3E2,C800 REP 0000 EEEE,EE REP 0004 FFFF,FF CHECKSUM ********************************************************************* IDRDATA Z6000158 Customizing TCP/IP Defaults on MVS On a UNIX operating system there are several data sets which contain site-dependent configuration information for TCP/IP. MVS and CMS file systems differ from UNIX file structure, and local security or organization considerations can affect how data sets are named. "Network Administration" of SAS/C Library Reference, Volume 2 describes how the SAS/C Socket library searches for these data sets. The following zap is used to change the default TCP/IP prefix as described in "Network Administration." Before using this zap please read and understand "Network Administration." The following generic zap may be applied to the transient library (prefix.LINKLIB) using APPLYZAP (see Technical Report C-114 for details on using the APPLYZAP program). ********************************************************************* * NAME: Z6004151 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 26MAY94 STATUS: DZ+UT USAGE-ID: LIBRARY-C4151 * * Specifying the high-level prefix for TCP/IP data sets * * NOTE: APPLY TO SASC.LINKLIB (TRANSIENT RUN-TIME LIBRARY IN * LOAD MODULE FORMAT) USING THE APPLYZAP UTILITY. * THIS ZAP SHOULD BE USED ONLY AS A LAST RESORT. SEVERAL * OTHER METHODS ARE AVAILABLE FOR FINDING TCP/IP * CONFIGURATION DATASETS. SEE SAS/C LIBRARY REFERENCE, * VOLUME 2, CHAPTER 17 FOR DETAILS. * NOTE: CODE YOUR OWN VALUE FOR THE PREFIX. * UP TO 26 BYTES MAY BE SPECIFIED (REPLACING THE * "XX"'s IN THE ZAP BELOW). ALL UNUSED BYTES MUST * BE CHANGED TO "00". THE LAST BYTE OF THE REP * SECTION MUST REMAIN "00". * EXAMPLE: CHANGE PREFIX TO "SYS2.TCPIPV2" * REP 0000 E2E8,E2F2 * REP 0004 4BE3,C3D7 * REP 0008 C9D7,E5F2 * REP 000C 0000,0000 * REP 0010 0000,0000 * REP 0014 0000,0000 * REP 0018 0000,00 * * END NAME L$CNDBA L$CSKFN$ LINKLIB CHECKSUM VER 0000 E3C3,D7C9 VER 0004 D700,0000 VER 0008 0000,0000 VER 000C 0000,0000 VER 0010 0000,0000 VER 0014 0000,0000 VER 0018 0000,00 * REP 0000 XXXX,XXXX REP 0004 XXXX,XXXX REP 0008 XXXX,XXXX REP 000C XXXX,XXXX REP 0010 XXXX,XXXX REP 0014 XXXX,XXXX REP 0018 XXXX,XX ********************************************************************* IDRDATA Z6004151 If you are using the all-resident library, the following generic zap may be applied to lib/mvs/libares.a in your installation directory using OBJZAP. ********************************************************************* * NAME: Z6004151 PRODUCT: SASC CATEGORY: SPEC SYSTEM: MVS * DATE: 26MAY94 STATUS: DZ+UT USAGE-ID: LIBRARY-C4151 * * Specifying the high-level prefix for TCP/IP data sets * * NOTE: APPLY TO lib/mvs/libares.a (ALL-RESIDENT * RUN-TIME LIBRARY IN OBJECT FORMAT) USING THE OBJZAP * UTILITY. * * NOTE: RELINK OR ZAP ANY ALL-RESIDENT PROGRAMS WHICH INCLUDE * THIS MODULE. * * THIS ZAP SHOULD BE USED ONLY AS A LAST RESORT. SEVERAL * OTHER METHODS ARE AVAILABLE FOR FINDING TCP/IP * CONFIGURATION DATASETS. SEE SAS/C LIBRARY REFERENCE, * VOLUME 2, CHAPTER 17 FOR DETAILS. * * NOTE: CODE YOUR OWN VALUE FOR THE PREFIX. * UP TO 26 BYTES MAY BE SPECIFIED (REPLACING THE * "XX"'s IN THE ZAP BELOW). ALL UNUSED BYTES MUST * BE CHANGED TO "00". THE LAST BYTE OF THE REP * SECTION MUST REMAIN "00". * * EXAMPLE: CHANGE PREFIX TO "SYS2.TCPIPV2" * REP 0000 E2E8,E2F2 * REP 0004 4BE3,C3D7 * REP 0008 C9D7,E5F2 * REP 000C 0000,0000 * REP 0010 0000,0000 * REP 0014 0000,0000 * REP 0018 0000,00 * * END NAME L$CNDBA L$CSKFN$ CHECKSUM VER 0000 E3C3,D7C9 VER 0004 D700,0000 VER 0008 0000,0000 VER 000C 0000,0000 VER 0010 0000,0000 VER 0014 0000,0000 VER 0018 0000,00 * REP 0000 XXXX,XXXX REP 0004 XXXX,XXXX REP 0008 XXXX,XXXX REP 000C XXXX,XXXX REP 0010 XXXX,XXXX REP 0014 XXXX,XXXX REP 0018 XXXX,XX ********************************************************************* IDRDATA Z6004151 ============================================================================================================= Appendix A: Utility Command Formats This appendix describes the utility command formats you will need when installing the SAS/C Cross-Platform software for UNIX. All of these commands are described in man pages provided with the product. dset The dset utility command displays the license information for a SAS/C Cross-Platform License product. The license data is maintained in a file with the executables associated with the product, and is updated using the zap utility supplied with the SAS/C Cross-Platform products, along with information supplied by SAS Institute. For additional information on the zap utility, see"zap" on page 56. The format for the dset utility command is: dset license_data_file The following example displays the license information associated with the SAS/C Cross-Platform Compiler. dset sascc_set.dat --------------------------------------------------------------------------------------------- Variable Definition -------------------------------------------------------------------------------------------- sascc_set.dat the license data for SAS/C Cross-Platform Compiler sascd_set.dat the license data for SAS/C Cross-Platform C++ Development System -------------------------------------------------------------------------------------------- objzap The objzap utility can be run under UNIX to make changes to object modules (since several parts of the products are supplied in object form). This utility operates on object modules that may or may not be members of ar370 archives, allowing users to: . examine data and instructions . change data and instructions . dump any control section (CSECT) of the object. The format for the objzap utility command is: objzap [-aar370_archive_name | -lobject_file_location] < zapname The following options are valid for objzap --------------------------------------------------------------------------------------------- Option Definition -------------------------------------------------------------------------------------------- -a The -a option names the ar370 archive where the object resides. The name of the archive is specified immediately following the -a with no spaces. -l The -l option is used to specify a directory where the object file resides if it is not contained in an archive specified with -a. The -l option is used to specify a directory other than the default, the current working directory. --------------------------------------------------------------------------------------------- The objzap utility uses several control statements that specify the operations to be performed. This section includes a brief synopsis of the control statements and detailed syntax rules, followed by an example of a UNIX objzap command line. Control Statements This section provides an introduction to the organization of the control statements that are used to run the objzap utility. Following this introduction is a detailed description of each statement and a brief discussion of the syntax rules. Organization Control statements for the objzap utility are listed below. (Control statements are not case-sensitive) . NAME object csect . VER offset expected-content . REP offset replacement-data . CHECKSUM value . IDRDATA xxxxxxxxx . DUMP object csect Each set of control statements begins with a NAME statement. The VER, REP,IDRDATA, and DUMP statements following the NAME statement apply to the object module and CSECT that the NAME statement identifies. The VER, REP, IDRDATA, and DUMP statements can appear in any order, but it is better to code all VER statements before the first REP statement to ensure that the data are verified before anything is replaced. The DUMP statement must follow the NAME statement; the CHECKSUM statement can appear anywhere in the sequence of statements. When a new NAME statement occurs, it defines a new CSECT (possibly a new object) as the object of succeeding VER,REP,IDRDATA, and DUMP statements. Statement Descriptions . NAME object csect NAME gives the identity of the object module containing the csect (control section) that all succeeding control statements operate on. There is no restriction on the number of NAME statements that can appear. . VER offset expected-content VER compares the contents of a location in the CSECT (offset) with the expected content (expected-content) supplied by the user. If the two fields do not compare as equal, the VER operation fails and a formatted dump is provided for the csect. No further REP operations are performed until the next NAME statement occurs. . offset contains the hexadecimal displacement of the data in csect. The VER operation fails if offset is outside the boundaries for the CSECT specified by the NAME statement (offset can be an even or odd number of digits). . expected-content contains the hexadecimal representation of the data expected at the offset in csect. The data must be expressed as an even number of two hexadecimal values, for example, 4741D175 (or, with commas: 4741,D175) If commas are used to separate data, the number of digits between them must also be even. Blanks cannot be used to separate digits. A blank ends expected-content; any data following a blank are treated as commands and ignored. For data that will not fit in one 80-byte VER statement, a second statement must be used. . REP offset replacement-data REP changes the data in a CSECT defined in the NAME statement. It replaces the data specified at offset with the data specified in replacement-data. The REP operation fails if offset is outside the boundaries for the CSECT specified in the NAME statement. The formats of the arguments to REP follow the same rules as the formats of the VER arguments. The VER operations should always be performed to determine what will be changed with the REP function. If more than one VER and REP operation is to be performed on a CSECT, statements should be ordered so that all VER statements appear before all REP statements. The reason for this order is to ensure that no REP statement is performed if any VER operation fails. When REP is successful, the old data are printed out and the IDR information in the object module is automatically updated. (See the IDRDATA discussion.) . CHECKSUM The CHECKSUM statement performs one of two tasks, depending on whether the optional value argument is used. The value argument must be eight hexadecimal digits and cannot contain commas. If the value argument is present, the statement compares the number specified in value and the accumulated CHECKSUM. The checking is done when objzap reads the control statements. If the accumulated CHECKSUM and the number specified by value are not equal, no processing is done. If the value argument is not present, the accumulated CHECKSUM is printed in hexadecimal. The accumulated CHECKSUM starts at zero and is reset to zero by each CHECKSUM statement. Only the offsets and data from REP statements are used in accumulating the CHECKSUM. The CHECKSUM statement guards effectively against typographical errors in making a change. All fixes to object modules supplied by SAS Institute contain CHECKSUM statements, and you should not remove them. You can use a comment on the CHECKSUM statement if the CHECKSUM statement contains a value argument. (See the discussion of comments later in this chapter.) . IDRDATA xxxxxxxxxx The IDRDATA control statement is executed only if at least one REP operation is executed. IDRDATA puts a maximum of 10 bytes of user data into bytes 1 to 10 at the location of the second IDR item (on the END card of the object that contains the CSECT). xxxxxxxxxx is the ten bytes of data, expressed without embedded blanks. Blanks are added at the right if less than 10 bytes are specified. IDRDATA is useful for tracing what zaps have been applied. Note that when a REP operation is performed, the following occurs: . If no IDRDATA operation is specified, "UNKNOWN" is inserted in bytes 1-9 of the second IDR field. . If an error later occurs, the string ER is inserted in bytes 11-12 on the END card. Otherwise, bytes 11-12 are blanked out. . The Julian data (yyddd) is inserted in bytes 15-19 on the END card. If there is more than one CSECT in the object on which a REP is performed, the IDRDATA from the last CSECT is used. If there was no previous IDR statement, "UNKNOWN" is used. It is customary for zaps supplied by SAS Institute to contain IDR statements with the release and zap numbers as identification. . DUMP DUMP or DUMPT dumps the CSECT identified in the NAME statement. The csect and object arguments are optional, and if specified, they must be the same as in the NAME statement. The output of the DUMP command is in hexadecimal format. When this command is used, the IDR data from the most recent zap (successful or unsuccessful) are printed, in addition to the contents of the CSECT. Note that a NAME statement must always come before the DUMP statement. . Comments Comment statements: You can use comments in the objzap command stream. Comment statements must be in the form * comment. (The number of comments is not limited.) The objzap utility writes the comment statements to standard output. Comments included on control statements: You can also include comments on control statements, other than DUMP or DUMPT statements. In a control statement, place the comment after the last argument that the statement requires. Precede the comment with a blank. You do not need an asterisk (*) to indicate a comment on a control statement. If no arguments are present, you cannot use a comment on the control statement. Detailed Syntax Rules The detailed syntax rules follow: . An objzap operation name must be specified before any arguments in a statement. . The statement can be entered starting in any column. Control statements can be up to 80 bytes long. (Information beyond column 72 is ignored.) . Several blanks can separate the objzap operation name and its first argument, but there must be at least one blank. Similarly, one or more blanks must separate arguments in the statement. . Commas can be used in data fields other than offsets and the CHECKSUM value. Blanks are not allowed inside data fields. A blank terminates a data field. . Values in the expected-content field (VER statement) and the replacement-data field (REP statement) must be expressed as an even number of hexadecimal digits. . Comment statements are specified by an asterisk. Comments can also be used on control statements other than the DUMP statement. In a control statement, a space separates the comment from the last argument that the statement takes. No asterisk (*) is needed for comments on control statements. . Control statements are not case-sensitive. Examples Zap an object specified in the NAME statement of the file myzap using the control statements found there: objzap < myzap Zap an object that is a member of myarchive.a using the control statements in myzap2. objzap -amyarchive.a < myzap2 Zap an object that is located in the directory /my/objects using the control statements in myzap3. objzap -l/my/objects < myzap3 spatch The spatch program reads a binary patchfile, applying the changes to the oldfile, producing an output file, or replacing the oldfile, if the -o option is not used. A binary patchfile is created using the scomp program. The spatch program verifies that the patch file format was one generated by a version of scomp which it understands. The scomp generated patch files are created in such a way that spatch can verify a change before applying it, by checking for the existence of expected bytes at the patch offsets. Also, spatch verifies expected checksum values and length of the generated output file. The format for the spatch utility command is: spatch [-ooutput -ppatchfile] oldfile The following options are valid for spatch. --------------------------------------------------------------------------------------------- Option Definition -------------------------------------------------------------------------------------------- -o specify the name of the output file. If -o is not used, the name of the output file will be the same as the input file with a suffix of .new appended. -p specify the name of the patchfile. If -p is not used, the name of the patchfile will be the oldfile name with a suffix of .pch appended. -------------------------------------------------------------------------------------------- In the following example, the patch mypatch will be read, and compared with the file oldfile. Changes will be applied, producing the new file, newfile. spatch -onewfile -pmypatch oldfile Caution: If the version of the file is not understandable by spatch, an error will be generated; however, the patch may be partially applied. The output file should not be the same as the input file, because spatch does not retain the entire input file in memory before writing the output. The spatch utility is normally used to update the SAS/C Cross-Platform Software to newer revisions. In this instance, the patchfiles are components of an update supplied by SAS/C Technical Support. update The update utility command applies maintenance to SAS/C Cross-Platform software, using updates supplied with a distribution. These updates are available from the SAS/C Technical Support bulletin board system, or via anonymous FTP. The updates are supplied as tar images and are placed in the updates subdirectory of your install_directory. On execution, update examines the updates subdirectory to locate any possible updates and applies them in order. You will be queried for each update in turn. The update utility uses the SAS/C Cross Platform binary patch application tool, spatch, to actually apply the updates. After an update has been successfully applied, the update tar image is moved into the updates.apd subdirectory. The format for the update utility command is: update [ install_directory ] The following option is valid for update --------------------------------------------------------------------------------------------- Option Definition -------------------------------------------------------------------------------------------- install_directory Although update searches the PATH environment variable for install_location to determine the installation directory, it is also possible to specify it as an argument to update. --------------------------------------------------------------------------------------------- UPDATE IMAGE Each update image is a tar file containing at least two other files, a README.?? file and a file named DIR. The README.?? file describes the current update and is placed in the installation directory when it is extracted by the tar command. The file named DIR is the directory describing the locations of the files to be patched, the name of the new file, the file mode of the new file and the name of the patch in the update image. Each of the fields in the DIR file are separated by a single blank character. An example DIR file would be: host/s4x/bin/lc1 host/s4x/bin/lc1 0755 lc1.pch /dev/null include/newinc.h 0444 newinc.pch This file indicates the patch files lc1.pch and newinc.pch will be present in the update tar image, and they are to be used to change host/s4x/bin/lc1 into host/s4x/bin/lc1, and to create a new file, include/newinc.h. The update program will then invoke the spatch program to apply the patches and create the new versions of the files. In this example, the commands executed would be: spatch -otmpfile -plc1.pch host/s4x/bin/lc1 rm -f host/s4x/bin/lc1 mv tmpfile host/s4x/bin/lc1 chmod 0755 host/s4x/bin/lc1 spatch -otmpfile -pnewinc.pch /dev/null mv tmpfile include/newinc.h chmod 0444 include/newinc.h In the following example, assume /usr/local/sasc6.00 is the installation directory, update will look in /usr/local/sasc6.00/updates for tar images in the form updateNN.tar and ask if you would like this update applied. On successful application of an update, the tar image will be moved to /usr/local/sasc6.00/updates.apd. To do this, enter: update /usr/local/sasc6.00 Note: Duplicate Updates Due to the nature of an installation, and the possible sharing of installation directories between many hosts, updates distributed with a tape or CD-ROM may be duplicated. Thus, a previously applied update may be duplicated in updates subdirectory, in future releases. The spatch program used by update will recognize redundant patches, so there is no harm. Caution: The update utility command is simply a bourne shell script - do not interrupt it while updates are being applied. zap The zap utility command reads a zap file and applies the changes to the image. A zap file contains a series of lines which are either comments or replace commands, indicating replacement bytes. A comment line is one beginning with an asterisk (*). The entire line is taken as a comment and ignored. Replace commands begin with the keyword REP followed by the offset of where the replacement is to begin, followed by the bytes to replace. The offsets and the replacement bytes are specified as hexadecimal digits. The format for the zap utility command is: zap zap-file image-file The following option is valid for zap --------------------------------------------------------------------------------------------- Option Definition -------------------------------------------------------------------------------------------- zap-file The file that contains the zap information. image-file The file which is altered by the application of the zap. -------------------------------------------------------------------------------------------- An example zap file could look like: * * An example zap file * * The following line indicates the 8 bytes at * offset 100 hexadecimal (256 decimal) are to be replaced. REP 100 B2FB83431858A488 * * The next line indicates that the next 8 bytes are to be * replaced, because the offset is 108 (264 decimal.) REP 108 DB581F2D03000000 There is no checking of the bytes which were previously in the image-file. The image file is rewritten. In the following example, the input file zap file, myzap, is scanned for replacement lines, replacing the specified bytes in the image file, prog. zap myzap prog The zap utility is normally used to update a site's license information. ============================================================================================================= Appendix B: SAS/C(r) Online Documentation The following SAS/C(r) documents are now available on-line in HTML format: SAS/C(r) Software Diagnostic Messages, First Edition, Release 6.00 SAS/C(r) Cross-Platform Compiler & C++ Development System: Usage and Reference, Release 6.00 SAS/C(r) Library Reference, Third Edition, Volume 1, Release 6.00 SAS/C(r) Library Reference, Third Edition, Volume 2, Release 6.00 These books were automatically installed in the /html directory in your installation location during the installation process in Chapter 3. To use the on-line documentation open sasctp.html, which is the page containing links to the four books. If you need assistance accessing the SAS/C on-line documentation, please contact SAS/C Technical Support.