IBM Support

How to Update Compilers in SCLM

How To


Summary

In SCLM, which compiler is used to build output is defined in a language definition. There might be times when you want to update the language definition to:
1. Upgrade to a new compiler version
2. Change compiler options
3. Change the data sets used by the compiler.

Objective

This article shows how to update a language definition, and recompile all the parts in the project that use the language definition. If you want to change which language your members use, follow the instructions in How to Change the Language of SCLM Members.

Steps

If you want to update all the source with a particular language to the new version of that language, here are the steps:
  • Find the language definition that you want to change.
  • Edit the language definition.  In this example, we are going to change language definition member FLM@COBE to use COBOL 6 instead of COBOL 5.  Look for the FLMTRNSL macro with COMPILE=IGYCRCTL to find the build translator for COBOL.
  • COBOL lanugage definition FLMTRNSL statement
  • Change the following parts of the FLMTRNSL statement:
    • CALLNAM – If the FLMTRNSL statement has a CALLNAM keyword that looks something like this: CALLNAM='COBOL 5 COMPILER', correct the name of the compiler.
    • VERSION – Change the VERSION to use the correct value.
    • DSNAME – Change the DSNAME to the name of the data set that contains the version of the compiler that you want to use.
    • OPTIONS – If you want to use any new compiler options or remove any old ones, update the values of the OPTIONS keyword.
  • COBOL language definition after changes to FLMTRNSL
  • Assemble and link the project definition. If you used the SCLM Sample Utility (option 10.7) to define your project, you might have a member called ASMPROJ containing JCL that you can submit to assemble and link.
  • Compile some members to make sure that they compile correctly. Either build a member or two in Force mode, or edit a few members and then build them.
  • Forced Build of a COBOL member
  • Once you are satisfied with your new language definition, you might want to build all the members in your project so that all their output is based on the new compiler. You can create a high-level archdef that holds all the members with this language and do a Build with Forced mode. Create the archdef at a development level that has no other changes in it.
  • archdef for members with changed language
    • Build the archdef in Forced mode. You might need to include an archdef rather than the source for some members for the build to complete successfully.
    • Build any project archdefs that contain the new object to make sure all the changes are picked up. In this case, we are building the high-level archdef that builds the whole project. You can build the project in Conditional mode, since the object modules were built in the previous step.
Forced build of high level archdef
  • Once you have a clean build, test to make sure everything works the way you want it to.
  • Promote the archdef to the appropriate level.

Document Location

Worldwide

[{"Line of Business":{"code":"","label":""},"Business Unit":{"code":"BU054","label":"Systems w/TPS"},"Product":{"code":"SSBLLD","label":"ISPF for z/OS"},"ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"}]

Document Information

Modified date:
29 March 2021

UID

ibm16403327