Thanks I am not quite sure what I am missing

This is the last thing I ran last night 


Here is the output

z/OS V2 R3 BINDER     07:28:21 TUESDAY JULY  9, 2019                            
BATCH EMULATOR  JOB(IBMUSER$) STEP(LINK    ) PGM= HEWL                          
IEW2278I B352 INVOCATION PARAMETERS - MAP,LET,LIST                              
IEW2322I 1220  1    IMPORT CODE64,'SYSADATA','openadata__FPc'                   
IEW2322I 1220  2    INCLUDE SYSLIB(SYSADATA)                                    
IEW2322I 1220  3    ENTRY TESTPRGD                                              
IEW2322I 1220  4    NAME TESTPRGD(R)                                            
IEW2469E 9907 THE ATTRIBUTES OF A REFERENCE TO CEETEST FROM SECTION SYSADATA DO 
         SYMBOL. REASON  2                                                      
IEW2469E 9907 THE ATTRIBUTES OF A REFERENCE TO CEETEST FROM SECTION SYSADATA DO 
         SYMBOL. REASON  2                                                      
IEW2456E 9207 SYMBOL CEETGTFN UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE
IEW2456E 9207 SYMBOL CEEINT UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE D
IEW2456E 9207 SYMBOL openadata UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM TH
IEW2456E 9207 SYMBOL CEESTART UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE
IEW2456E 9207 SYMBOL CEEBETBL UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE
IEW2456E 9207 SYMBOL CEETREC UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE 
IEW2456E 9207 SYMBOL fopen UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE DE
   *ISFPCU4                                                                     
IEW2491E 9373 CLASSES C_WSA and C_WSA64 ARE BOTH PRESENT IN THE MODULE.         
IEW2606S 4B39 MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT B

Dll source code

#include <stdio.h>                          
#include <stdlib.h>                         
#include <ctest.h>                          
#pragma export(openadata)                   
#pragma csect(CODE,"SYSADATA")              
extern void __ceetest(void);                
#pragma map(__ceetest,"CEETEST")            
#pragma linkage(CEETEST,FETCHABLE)          
#pragma map(opnadata,"openadata")           
void openadata(char *filename)              
{                                           
 __ceetest();                               
 FILE *fp = fopen("DD:SYSADATA","r");       
}                                           


Link portion of assembler calling program

//LINK     EXEC PGM=HEWL,PARM='MAP,LET,LIST'                           
 //SYSLIN   DD  DSN=&&OBJ,DISP=(OLD,DELETE)                             
 //         DD  DSN=IBMUSER.DBGR.SIDEDECK(SYSADATA),DISP=SHR  <--- side deck    
        
 //         DD  DDNAME=SYSIN                                            
 //SYSLIB   DD  DSN=ISP.SISPLOAD,DISP=SHR                               
 //*        DD  DSN=IBMUSER.HERCULES.LOADLIB,DISP=SHR                   
 //         DD  DSN=SYS1.CSSLIB,DISP=SHR                                
 //         DD  DSN=IBMUSER.TEST.AUTHLIB,DISP=SHR                       
 //         DD  DSN=IBMUSER.DBGR.DLLLIB,DISP=SHR              <-------          
 //SYSLMOD  DD  DSN=IBMUSER.TEST.AUTHLIB,DISP=SHR                       
 //SYSUT1   DD  DSN=&&SYSUT1,SPACE=(1024,(120,120),,,ROUND),UNIT=VIO,   
 //             DCB=BUFNO=1                                             
 //SYSPRINT DD  SYSOUT=*                                                
 //SYSIN    DD  *                                                       
  INCLUDE SYSLIB(SYSADATA)    <---- the dll load module name                    
                       
  ENTRY TESTPRGD                                                        
  NAME TESTPRGD(R)                                                      
 /*                                                                     

Side deck 
BROWSE    IBMUSER.DBGR.SIDEDECK(SYSADATA)          Line 0000000000 Col 001 080 
Command ===>                                                  Scroll ===> CSR  
******************************** Top of Data **********************************
IMPORT CODE64,'SYSADATA','openadata__FPc'                                      
******************************* Bottom of Data ********************************

Dll as a library PDSE

BROWSE    IBMUSER.DBGR.DLLLIB                           Row 0000001 of 0000001
 Command ===>                                                  Scroll ===> PAGE
    Name     Prompt         Alias-of      Size       TTR      AC    AM     RM  
 . SYSADATA                             00001008    00000E    00     64    ANY 
   **End**                                                                     
                                                                               
Command ===>                                                                   
                                                                               
Data Set Name  . . . : IBMUSER.DBGR.DLLLIB                                     
                                                                               
General Data                          Current Allocation                       
 Management class . . : **None**       Allocated cylinders : 5                 
 Storage class  . . . : **None**       Allocated extents . : 1                 
  Volume serial . . . : WORKA1         Maximum dir. blocks : NOLIMIT           
  Device type . . . . : 3390                                                   
 Data class . . . . . : **None**                                               
  Organization  . . . : PO            Current Utilization                      
  Record format . . . : U              Used pages  . . . . : 49                
  Record length . . . : 0              % Utilized  . . . . : 5                 
  Block size  . . . . : 6144           Number of members . : 1                 
  1st extent cylinders: 5                                                      
  Secondary cylinders : 10                                                     
  Data set name type  : LIBRARY       Dates                                    
  Data set version  . : 1              Creation date . . . : 2019/07/05        
                                       Referenced date . . : 2019/07/09        
                                       Expiration date . . : ***None***        
                                                                               

-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Tabari Alexander
Sent: Tuesday, July 9, 2019 10:44 AM
To: [email protected]
Subject: Re: Unresolved external references when trying to link DLL app

Hello,

With respect to the unresolved references, have you included the LE libraries 
in your SYSLIB concatenation? More info can be found here: 
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.ceea200/cllexx.htm

>However the most troubling is the C function I exported I included the 
>side deck which has my exported function Strangely thought even tough I 
>included a pragma map to leave the name as it appended _FPC

In the snippet you posted, I see where you use a #pragma map to map __ceetest's 
name. I do not see an equivalent statement for "openadata".

>From my understanding the sidedeck would be concatenated to IEWL SYSLIN

You are correct. The sidedeck that is created would be concatenated on the IEWL 
SYSLIN for programs that wish use the DLL.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
[email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to