Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

zOS: MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT BE SAVED IN LOAD MODULE FORMAT

I'm trying to do the linkage of a hello world in cobol, as in this tutorial, I can compile the program and get the new member in project.group.OBJ successfully, but when I link it with

LINK project.group.OBJ(Member) lib('cee.sceelked')

I get the following:

 IEW2278I B352 INVOCATION PARAMETERS - TERM                                    
 IEW2606S 4B39 MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT
          BE SAVED IN LOAD MODULE FORMAT.                                      
 IEW2008I 0F03 PROCESSING COMPLETED.  RETURN CODE =  12.

I realized that in 4 (foreground) option, the link editor appears with an asterisk at the left: "7 *Binder/Link editor" which indicates "No packed data support".

Is the error because of that? What does it mean "No packed data support"? I can access that option with no problem.

Searching I found a link which indicates "An attempt is being made to save a module in a format that is incompatible with the features being used" But I don't know what they mean by the features being used. Is it related to the type of the dataset load in which is supposed to be put when linked? I am lost.

like image 276
Samuel Avatar asked May 13 '21 02:05

Samuel


1 Answers

The load module format is very old. The last COBOL compiler from IBM that would generate code that could be bound as a load module is IBM Enterprise COBOL 4.2.x, which is scheduled for end of service on 30-Apr-2022. Even that compiler would generate code that could not be stored as a load module if you used certain compile options, i.e. DLL.

More recent versions of IBM Enterprise COBOL generate code which must be bound as a program object. A program object, while executable like a load module, is very different from a load module.

Load modules are stored in PDSs (Partitioned Data Sets). Program objects must be stored in PDSEs (Partitioned Data Sets Extended).

Ensure the SYSLMOD DD of your bind step (the project.group.LOAD dataset) is pointing to a PDSE. When you allocate it with ISPF 3.2 set the Data set name type to LIBRARY.

like image 86
cschneid Avatar answered Oct 25 '22 17:10

cschneid