LINK Edit failing



IBM's cross-platform compiler PL/I for MVS, VM & VSE, OS/390 and Enterprise PL/I for z/OS

LINK Edit failing

Postby Misha786 » Mon May 01, 2023 5:52 pm

Hi -
(I know this topic has been discussed multiple times, I referred those and tried to fix the issue as per the previous discussions, but could not fix it)
My I am trying to recompile main driver PL/I program due to changes made in submodules it calls. There are 17 submodules those are changed and compiled.
5 of those sumodules got rc=05 due to IEW2454W . sample from one of those submodules

SDSF EDIT    SUFWNDP  (JOB00509) JCLEDIT                   Columns 00
Command ===>                                                  Scroll
000033 //ENTPL1CO EXEC PGM=IBMZPLI,                                  
000034 //   PARM=('SERVICE("R123V050 M958 02CA39F46D933ADD ")',      
000035 //           RULES(NOUNREF),EXIT,XINFO(XML)),COND=(8,LE)      
000036 //STEPLIB  DD  DSN=SYS1.VAPLI.SIBMZCMP,DISP=SHR              
000037 //*********************************    START (VBCCMAC)        
000038 //SYSLIB DD DISP=SHR,                                        
000039 //             DSN=CC.MACLIB                                  
000040 //          DD DISP=SHR,                                      
000041 //             DSN=SU.MACLIB                                  
000042 //          DD DISP=SHR,                                      
000043 //             DSN=TU.MACLIB                                  
000044 //          DD DISP=SHR,                                      
000045 //             DSN=SUP.DUMMY.PDSF80                          
000046 //          INCLUDE MEMBER=@MACPLI                            
000047 //          INCLUDE MEMBER=@MACGEN                            
000048 //*********************************    END (VBCCMAC)          
000049 //SYSOUT   DD  SYSOUT=*                                      
000050 //SYSIN  DD DISP=SHR,DSN=TUTEST.R123V050.MIN.PLI.SRCE(SUFWNDP)
000051 //SYSPRINT DD DSN=&&EPLILIST,SPACE=(CYL,(10,10),RLSE),        
000052 //     DISP=(,PASS),DCB=(RECFM=VB,LRECL=137)                  
000053 //SYSLIN   DD  DSN=&&OBJPLIE,DISP=(MOD,PASS),                


But in sysprint, I see those CCO* modules are not being resolved despite mentioning CC.MACLIB (this is where those CCO* modules resides) in SYSLIB.
----------------------------------------------------------------------
 SDSF OUTPUT DISPLAY SUFWNDP  JOB00509  DSID   114 LINE 0       COLUMNS
 COMMAND INPUT ===>                                            SCROLL =
********************************* TOP OF DATA *************************
z/OS V2 R5 BINDER     07:15:18 MONDAY MAY  1, 2023                    
BATCH EMULATOR  JOB(SUFWNDP ) STEP(LKEDULDE) PGM= IEWL                
IEW2322I 1220  1    ENTRY SUFWNDP                                      
IEW2454W 9203 SYMBOL CCOIAL1 UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED.
IEW2454W 9203 SYMBOL CCOIITT UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED.
IEW2454W 9203 SYMBOL CCOIGPT UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED.
IEW2454W 9203 SYMBOL SUFWNBH UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED.
IEW2454W 9203 SYMBOL IBMQOFWR UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED
IEW2454W 9203 SYMBOL SUFWNIN UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED.
IEW2454W 9203 SYMBOL CEESTART UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED
IEW2454W 9203 SYMBOL CEESG011 UNRESOLVED.  NO AUTOCALL (NCAL) SPECIFIED
                                                                       
                         *** M O D U L E  M A P ***                    


So, these sub modules are compiled and object is being created in given obj lib i.e. TUTEST.R123V050.MIN.OBJECT.

Then, I re-compiled the main PLI module (calling/driver module) and it completed successfully.
Command ===>                                                  Scroll
000027 //ENTPL1CO EXEC PGM=IBMZPLI,                                  
000028 //   PARM=('SERVICE("R123V050 M958 02C2714B97933ADD ")',      
000029 //           RULES(NOUNREF),EXIT,XINFO(XML)),COND=(8,LE)      
000030 //STEPLIB  DD  DSN=SYS1.VAPLI.SIBMZCMP,DISP=SHR              
000031 //*********************************    START (VBCCMAC)        
000032 //SYSLIB DD DISP=SHR,                                        
000033 //             DSN=CC.MACLIB                                  
000034 //          DD DISP=SHR,                                      
000035 //             DSN=SU.MACLIB                                  
000036 //          DD DISP=SHR,                                      
000037 //             DSN=TU.MACLIB                                  
000038 //          DD DISP=SHR,                                      
000039 //             DSN=SUP.DUMMY.PDSF80                          
000040 //          INCLUDE MEMBER=@MACPLI                            
000041 //          INCLUDE MEMBER=@MACGEN                            
000042 //*********************************    END (VBCCMAC)          
000043 //SYSOUT   DD  SYSOUT=*                                      
000044 //SYSIN  DD DISP=SHR,DSN=TUTEST.R123V050.MIN.PLI.SRCE(SUFWNMS)
000045 //SYSPRINT DD DSN=&&EPLILIST,SPACE=(CYL,(10,10),RLSE),        


+*****************************************************
+***                                                  
+ENTERPRISE PL/I COMPILE COMPLETED SUCCESSFULLY      
+***                                                  
+*****************************************************


Then, Finally I tried to Linked it using the object lib where modified submodules reside
DIT    SUFWNMS  (JOB00555) JCLEDIT          
d ===>                                      
 //LINK     EXEC PGM=IEWL,COND=(8,LE),REGION=
 // PARM='LET,LIST,MAP,REUS=NONE,MSGLEVEL=4'
 //SYSPRINT DD SYSOUT=D                      
 //SYSTERM  DD SYSOUT=D                      
 //SYSLIB   DD DISP=SHR,                    
 //******************  START (VBCLSYS) ******
 //            DSN=DFTEST.R297V552.INT.OBJECT
 //         DD DISP=SHR,                    
 //            DSN=SU.OBJECT                
 //         DD DISP=SHR,                    
 //            DSN=SUP.DUMMY.PDSU6144        
 //         INCLUDE MEMBER=@ULDPLI          
 //         INCLUDE MEMBER=@ULDGENE          
 //         INCLUDE MEMBER=@ULDDB2          
 //        DD DISP=SHR,DSN=SU.ULOAD.DUMMYENT
 //PROCLIB DD DSN=SDA1.PROCLIB,DISP=SHR      
 //RESLIB  DD DSN=SYS1.IMSVS.RESLIB,DISP=SHR
 //**************** END OF (VBCLSYS) ********
 //SYSLIN   DD  *                            
  INCLUDE SYSLIB(SUFWNMS)                    
  INCLUDE SYSLIB(DSNELI)                    
 NAME SUFWNMS(R)                            
/*                                          
//SYSLMOD  DD DISP=SHR,                      
//            DSN=TUTEST.R123V050.MIN.LOAD  
//SYSUT1   DD UNIT=SYSDAR,SPACE=(CYL,(20,5))


But, it is faling with error code
SDSF OUTPUT DISPLAY SUFWNMS  JOB00555  DSID   109 LINE 0       COLUMNS 02- 81
 COMMAND INPUT ===>                                            SCROLL ===> CSR
********************************* TOP OF DATA ********************************
z/OS V2 R5 BINDER     07:19:19 MONDAY MAY  1, 2023                            
BATCH EMULATOR  JOB(SUFWNMS ) STEP(LINK    ) PGM= IEWL                        
IEW2322I 1220  1    INCLUDE SYSLIB(SUFWNMS)                                  
IEW2322I 1220  2    INCLUDE SYSLIB(DSNELI)                                    
IEW2322I 1220  3    NAME SUFWNMS(R)                                          
IEW2456E 9207 SYMBOL CCOCAL UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE
IEW2456E 9207 SYMBOL CCOCGP UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE
IEW2456E 9207 SYMBOL CCOFREE UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM TH
IEW2456E 9207 SYMBOL CCOIAL1 UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM TH
IEW2456E 9207 SYMBOL CCOIITT UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM TH
IEW2456E 9207 SYMBOL CCOIGPT UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM TH
                                                                             


I tried to include CC.MACLIB where these CCO* modules reside but it is giving error
SDSF OUTPUT DISPLAY SUFWNMS  JOB01869  DSID   109 LINE 0       COLUMNS 02-
 COMMAND INPUT ===>                                            SCROLL ===> C
********************************* TOP OF DATA ******************************
z/OS V2 R5 BINDER     08:16:19 MONDAY MAY  1, 2023                          
BATCH EMULATOR  JOB(SUFWNMS ) STEP(LINK    ) PGM= IEWL                      
IEW2322I 1220  1    INCLUDE SYSLIB(SUFWNMS)                                
IEW2322I 1220  2    INCLUDE SYSLIB(DSNELI)                                  
IEW2322I 1220  3    NAME SUFWNMS(R)                                        
IEW2322I 1220  4           /*+ MACRO LIBRARY MEMBER FOR CCOIGPT     11 APR  
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD /*+.                        
IEW2322I 1220  5           /*+ CCRCS: Get or put an activity attribute      
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD /*+.                        
IEW2322I 1220  6    DCL CCOIGPT   EXTERNAL ENTRY(                          
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD DCL.                        
IEW2322I 1220  7                                CHAR(16),      /* PVXR: CC_A
IEW2332E 1504 CONTROL STATEMENT SYNTAX ERROR NEAR 'CHAR('.                  
IEW2322I 1220  8                                               /* ponent act
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD /*.                        
IEW2322I 1220  9                                FIXED BIN(31),              
IEW2322I 1220  10                                CHAR(1),                  
IEW2322I 1220  11                                FIXED BIN(31),            


See what these CCO* modules looks like (if it helps to crack the issue)
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    CC.MACLIB(CCOCAL) - 01.00                       Columns 0000
 ===>                                                  Scroll ==
***************************** Top of Data **********************
        /*+ MACRO LIBRARY MEMBER FOR CCOCAL      10 APR  2001 16
        /*+ CCRCS: Allocate component instance retrieval criteri
 DCL CCOCAL    EXTERNAL ENTRY(                                  
                             CHAR(16),      /* PVXR: CC_CRITERIA
                                            /* ection criteria a
                             FIXED BIN(31)                      
                             );                                
**************************** Bottom of Data ********************
Misha786
 
Posts: 30
Joined: Fri Nov 27, 2020 12:28 am
Has thanked: 0 time
Been thanked: 0 time

Re: LINK Edit failing

Postby Robert Sample » Mon May 01, 2023 7:52 pm

Do you understand the difference between IBMZPLI and IEWL? From what you've posted, it does not appear that you do. Source is compiled using IBMZPLI and that generates an object deck. The object deck is combined with other library modules by IEWL to create the load module.
/OS V2 R5 BINDER 08:16:19 MONDAY MAY 1, 2023
BATCH EMULATOR JOB(SUFWNMS ) STEP(LINK ) PGM= IEWL
IEW2322I 1220 1 INCLUDE SYSLIB(SUFWNMS)
IEW2322I 1220 2 INCLUDE SYSLIB(DSNELI)
IEW2322I 1220 3 NAME SUFWNMS(R)
IEW2322I 1220 4 /*+ MACRO LIBRARY MEMBER FOR CCOIGPT 11 APR
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD /*+.
IEW2322I 1220 5 /*+ CCRCS: Get or put an activity attribute
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD /*+.
IEW2322I 1220 6 DCL CCOIGPT EXTERNAL ENTRY(
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD DCL.
IEW2322I 1220 7 CHAR(16), /* PVXR: CC_A
This shows you are attempting to include a SOURCE module in your linkage edit -- the source module should be in the compile step instead.
Robert Sample
Global moderator
 
Posts: 3719
Joined: Sat Dec 19, 2009 8:32 pm
Location: Dubuque, Iowa, USA
Has thanked: 1 time
Been thanked: 279 times

Re: LINK Edit failing

Postby Misha786 » Mon May 01, 2023 9:07 pm

Hi Robert ..
thanks for your reply. I do understand the difference that you explained. That is the reason I mentioned that while compiling the the submodules and main module, I did included the lib CC.MACLIB where the CCO* macros are residing. And, still getting
IEW2454W - in submodules compilation
IEW24556E - in Main modules LinkEdit.

The piece of codes that you picked up was my wild attempt because I did included CC.MACLIB (the source macro lib ) during compilation.
I am not sure if there is something else that need to be taking into consideration. Like, when these modules were last compiled/recompiled back in 2009 it was some lower version V4.5 of PL/I where as now we have V5.R3 and zos V2 R5. Any clue will be very helpful.
Thanks,
Misha
Misha786
 
Posts: 30
Joined: Fri Nov 27, 2020 12:28 am
Has thanked: 0 time
Been thanked: 0 time

Re: LINK Edit failing

Postby Robert Sample » Tue May 02, 2023 2:13 am

Well, CEESTART and CEESG011 are part of the LE environment. For them, you need to point to your CEE.SCEELKED library in your IEWL step SYSLIB DD statement. IBMQOFWR will be part of the PL/I linkage editor library, I would think, since IBM is the prefix for PL/I modules. I have no idea what application / system uses CCO prefix for modules -- but you need to find out.

Bottom line: you need to work with your system support group to locate the libraries you need in your IEWL step and concatenate them to your SYSLIB statement. We cannot help you with this as each site customizes the names of their libraries in their own way. Only someone working at your site can help you find the right libraries.
Robert Sample
Global moderator
 
Posts: 3719
Joined: Sat Dec 19, 2009 8:32 pm
Location: Dubuque, Iowa, USA
Has thanked: 1 time
Been thanked: 279 times

Re: LINK Edit failing

Postby Misha786 » Tue May 02, 2023 6:23 pm

thanks Robert for looking into this. I will take this matter to our support guys to get a fix.
Thanks,
Misha
Misha786
 
Posts: 30
Joined: Fri Nov 27, 2020 12:28 am
Has thanked: 0 time
Been thanked: 0 time


Return to PL/I