• Print  |
  • Feedback  |

Knowledge Base


TS-496

Managing the SAS/C Transient Library

To: SAS/C Compiler Sites

From: SAS/C Technical Support

Subject: Managing the SAS/C Transient Library (TSNOTE 496)

A number of sites that license SAS/C as well as vendor products written with SAS/C have experienced problems managing the libraries associated with these products. For instance, if several vendor products are installed into the same MVS PDS or on the same CMS minidisk, some of them may experience problems due to an older SAS/C Transient Library distributed with another product. The SAS/C Transient Library may have been distributed to you as part of the SAS/C Limited Distribution Package. This document addresses the following problems:

  • Programs may not execute properly if the transient library is an earlier release than the library that is used to link the programs.
  • Programs linked with some previous releases cannot access portions of a more recent transient library that reside above the 16Mb line when linked with AMODE=24.

Ordinarily, code compiled and linked with any version of the SAS/C Compiler and Library will execute with any later version of the SAS/C transient library. Execution with previous versions of the transient library may fail, but will always generate a warning message at run-time indicating the release of the transient library. By adhering to the vendor responsibilities listed, customers running multiple applications written with the SAS/C Compiler can avoid problems that may result from running with multiple versions of the SAS/C Transient Library.


Vendor Responsibilities

Vendors who distribute the SAS/C Transient Library with their SAS/C application are responsible for providing their customers the following:

  • The release of the SAS/C Transient Library being shipped and the release of the SAS/C Resident Library with which the application was linked. The release number can be determined by the runtime option =VERSION.
  • Any maintenance (list of zaps and updates) that has been applied to the SAS/C Transient Library.
  • Instructions for installing the product with and without the SAS/C Transient Library. If a later release has already been installed there is usually no need to install the SAS/C Transient Library that is being shipped.
  • Documentation for how and where to install the SAS/C Transient Library. This is needed if the copy of the SAS/C Transient Library that is shipped must be used with your product (for example, due to unique maintenance requirements). This information must be provided so that the SAS/C Transient Library shipped with a product will not conflict with any other SAS/C Transient Library.
  • For MVS only. Documentation cautioning customers that when they install the SAS/C Transient Library into the linklist or LPA, they may overwrite a more recent SAS/C Transient Library that was shipped with another vendor's product.
  • Instructions for applying zaps if any site-specific zaps for the SAS/C Transient Library are needed. The zaps are provided in our installation instructions. Also, information on the impact of the zap(s) must be provided.

Note: These items are not needed for programs developed using the Systems Programming Environment (SPE) or the all-resident feature.


SAS/C Transient Library Incompatibility Issues

In SAS/C Release 5.50, several release incompatibility issues resulted from moving most of the SAS/C Transient Library above the 16Mb line. These issues were originally documented in letters sent to customers ("Compatibility Zaps" in December of 1992), in the Installation Instructions of the SAS/C Products for Release 5.50, and in the SAS/ C Compiler and Library User's Guide, 3rd Edition - Chapter 1, Compatibility Notes. At this time, we do not expect such incompatibility issues to surface in future releases. However, should this occur, we will take the appropriate steps to inform all licensed customers well in advance.

In order to prevent any conflicts which may result from the incompatibility issues, you should consider the information on the following pages before shipping any product which uses the SAS/C Transient Library. Please keep in mind that the items in "Vendor Responsibilities" must be followed in order to avoid any conflicts from mixing releases of the SAS/C Transient Library.

The information on following pages are applicable when the SAS/C Transient Library release used at execution is SAS/C 5.50C or later. It is assumed that one of the valid AMODE/RMODE combinations will be used. These combinations are documented in the IBM Assembler Services Guide, GC28-1466, and are summarized as follows:

             RMODE=24      RMODE=Any                                            
            +------------+-----------+                                          
  AMODE=24  |  Valid     | Invalid   |                                          
            +------------+-----------+                                          
  AMODE=31  |  Valid     | Valid     |                                          
            +------------+-----------+                                          

Shipping Products Developed using SAS/C Release 4.50 AMODE=24

If you are shipping products developed using SAS/C Release 4.50 with AMODE=24, you must perform one of the following:

  • Upgrade to 5.50 or later (relink and redistribute - Note: Recompilation is not necessary).
  • Relink the 4.50 product with Release 5.00 or 5.01 resident run-time library after applying the zaps appropriate for 5.00 or 5.01. The zaps can either be applied to the resident library before the applications is relinked, or the zaps can be applied to the application load module.
  • Relink product using AMODE=31 instead of AMODE=24.
  • Relink the transient library at release level 5.50 or later so it will reside below the 16Mb line and then redistribute. Refer to installation instructions for information on relinking the 5.50 or later transient library.

Note: If you choose this option, you, the vendor, are responsible for notifying customers of the incompatibility issues that may occur if they are running this library with other products developed with SAS/C.


Shipping Products Developed using SAS/C Release 4.50 AMODE=31

If you are shipping products developed using SAS/C Release 4.50 with AMODE=31, there are no incompatibility issues. AMODE=31 programs will continue to execute, regardless of where the transient library is installed.

Shipping Products Developed using SAS/C Release 5.00 AMODE=24

If you are shipping products developed using SAS/C Release 5.00 with AMODE=24, you must perform one of the following:

  • Upgrade to SAS/C Release 5.50, or later (relink and redistribute. Note: Recompilation is not necessary).
  • Relink the product using AMODE=31 instead of AMODE=24.
  • Apply the 5.00 zaps, that are needed for AMODE=24 applications to coexist with the 5.50 or later above-the-line library. The zaps can either be applied to the resident library before the application is relinked or the zaps can be applied to the application load module.
  • Relink the 5.50 or later transient library so it will reside below the 16Mb line and then redistribute (refer to the installation instructions for information on relinking the 5.50 or later transient library).

Note: If you choose this option, you, the vendor, are responsible for notifying customers of the incompatibility issues that may occur if they are running this library with other products developed with SAS/C.


Shipping Products Developed using SAS/C Release 5.00 AMODE=31

If you are shipping products developed using SAS/C Release 5.00 with AMODE=31, there are no incompatibility issues. AMODE=31 programs will continue to execute, regardless of where the transient library is installed.


Shipping Products Developed using SAS/C Release 5.01 AMODE=24

If you are shipping products developed using SAS/C Release 5.01 with AMODE=24, you must perform one of the following:

  • Upgrade to 5.50 or later (relink and redistribute - Note: Recompilation is not necessary).
  • Relink the product using AMODE=31 instead of AMODE=24.
  • Apply the 5.01 zaps, that are needed for AMODE=24 applications to coexist with the 5.50 or later above-the-line library. The zaps can either be applied to the resident library before the application is relinked or the zaps can be applied to the application load module.
  • Relink the 5.50 or later transient library so it will reside below the 16Mb line and then redistribute (refer to installation instructions for information on relinking the 5.50 or later transient library).

Note: If you choose this option, you, the vendor, are responsible for notifying customers of the incompatibility issues that may occur if they are running this library with other products developed with SAS/C.


Shipping Products Developed using SAS/C Release 5.01 AMODE=31

If you are shipping products developed using SAS/C Release 5.01 with AMODE=31, there are no incompatibility issues. AMODE=31 programs will continue to execute, regardless of where the transient library is installed.


Shipping Products Developed using SAS/C Release 5.50 or Later AMODE=24

If you are shipping products developed using SAS/C Release 5.50 or later with AMODE=24, there are no incompatibility issues. AMODE=24 programs will continue to execute, regardless of where the transient library is installed.


Shipping Products Developed using SAS/C Release 5.50 or Later AMODE=31

If you are shipping products developed using SAS/C Release 5.50 or later with AMODE=24, there are no incompatibility issues. AMODE=31 programs will continue to execute, regardless of where the transient library is installed.


Summary of SAS/C Transient Library Incompatibility Issues

The following two tables summarize the incompatibility issues with the SAS/C Transient Library:

 Application       |       Execution Transient Library/Location   |             
  linked: AMODE(31)|     4.50F 5.00G 5.01B 5.50C 5.50C 6.00  6.00 |             
                   |      BTL   BTL   BTL   BTL   ATL  BTL    ATL |             
 ----------+-------+----------------------------------------------+             
 Resident  | 4.50F |      Ok    Ok    Ok    Ok    Ok   Ok     Ok  |             
  library  | 5.00G |     No!    Ok    Ok    Ok    Ok   Ok     Ok  |             
   used for| 5.01B |     No!    No!   OK    Ok    Ok   Ok     Ok  |             
    LKED   | 5.50C |     No!    No!   No!   Ok    Ok   Ok     Ok  |             
           | 6.00  |     No!    No!   No!   No!   No!  Ok     Ok  |             
           +-------+----------------------------------------------+             
                                                                                
 Applicaton        |       Execution Transient Library/Location   |             
  linked: AMODE(24)|     4.50F 5.00G 5.01B 5.50C 5.50C 6.00  6.00 |             
                   |      BTL   BTL   BTL   BTL   ATL  BTL    ATL |             
 ----------+-------+----------------------------------------------+             
 esident   | 4.50F |      Ok    Ok    Ok    Ok    No!  Ok     No! |             
      ED   | 5.00G |      No!   Ok    Ok    Ok    Ok?* Ok     Ok?*|             
           | 5.01B |      No!   No!   Ok    Ok    Ok?* Ok     Ok?*|             
           | 5.50C |      No!   No!   No!   Ok    Ok   Ok     Ok  |             
           | 6.00  |      No!   No!   No!   No!   No!  Ok     Ok  |             
           +-------+----------------------------------------------+             
              ?*: see compatibility zaps below                                  
                                                                                
      ATL: Above The Line (RMODE(ANY) )                                         
      BTL: Below The Line (RMODE(24)  )                                         

Compatibility Zaps

The following zaps allow SAS/C 5.00G and 5.01B AMODE(24) applications to coexist with the above-the-line SAS/C Transient Library introduced with SAS/C Release 5.50.

      Applicable Release:     SAS/C 5.00                                        
                              SAS/C 5.01                                        
      Zaps apply to     :     Resident library (base/standard)                  
                              and/or application load module                    
                                                                                
      0319  - MVS and BIMODAL CMS applications, suggested for ALL               
              applications                                                      
      0320  - VSAM programs under MVS and BIMODAL CMS                           
      0321  - Coprocess applications under MVS and BIMODAL CMS                  
      0415  - BIMODAL CMS applications                                          
      0481  - CICS applications                                                 
      0485  - CICS applications                                                 
      0868  - CICS applications                                                 
      0869  - CICS Coprocessing applications