Binding (link-editing) changes with Enterprise COBOL Version 5 and Version 6

There have been a number of changes to binding (link-editing) Enterprise COBOL V5 or V6 programs.

  • The DFSMS Program Management Binder must be used to bind (link-edit) Enterprise COBOL V5 or V6 applications.
  • The Language Environment® Prelinker can no longer be used, because it doesn't understand the GOFF object format. The transformations that the Prelinker does on prior object module formats are incompatible with program object features. Using the Language Environment Prelinker for any component of an executable which involves Enterprise COBOL V5 or V6 applications will yield the undefined behavior.
  • Executables are program objects, not load modules. The batch loader (IEWBLDGO) cannot be used to produce a program module in a partitioned data set or a PDSE, because it doesn't understand the GOFF object format or program object formats. Alternatively, the Program Management Loader can support programs in PDSE data sets.
  • Executables cannot reside in PDS (only in PDSE) data sets.
  • NOLOAD segments will not take storage at run time, unless Debug Tool, CEEDUMP, Fault Analyzer, Application Performance Analyzer or a 3rd-party vendor tool that uses DWARF debugging data is used
  • When a program object contains any of the following programs, the binder option RMODE(24) must be specified:
    • An Enterprise COBOL program that is compiled with the RMODE(24) or NORENT compiler options.
    • A VS COBOL II program that is compiled with the NORENT option.
    • An assembler program that contains a CSECT with RMODE 24.
    • COBOL programs compiled with a compiler earlier than V5 that run with AMODE 24 and statically call a COBOL program compiled with COBOL V5 or later.