I posted the below HOWTO request last Friday to the MVS-OE list and I tried to wait a reasonable amount of time for responses there, but have received none yet. I thought perhaps I should widen the audience for the question and decided to post here as well. If anyone here can answer my questions I would greatly appreciate it.
To preempt some follow-up questions that I can see coming, this effort is on a z//OS V1.12 system, the SYSLMOD for the bind is a PDSE, and the following are examples of an IMPORT control card and error message from the binder, even though the IMPORT control card for this entry point gets no error message at all (the messages are not adjacent in the binder listing): IEW2322I 1220 18 IMPORT CODE,'/usr/lib/iewbndd.so','__iew_fd_getN' . . . IEW2456E 9207 SYMBOL __iew_fd_getN UNRESOLVED. MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY. >From the RTFM I have done on the C/C++ shelf it appears that I should be able >to use LONGNAME,GOFF,RENT for a non-XPLINK compile and bind as long as the >binder output is PDSE or a unix system services directory. I just can't >figure out how to get it to actually work yet. TIA for any help you can give to cure my ignorance. Peter -----Original Message----- From: Farley, Peter x23353 Sent: Friday, July 08, 2011 10:31 AM To: 'MVS OpenEdition' Subject: HOWTO question: Linking non-XPLINK C with a unix shared object I am trying to figure out how to link a plain C module, non-XPLINK, with an IBM-supplied shared-object (= DLL, right?). This is the IEWAPCCC example in the Program Management Advanced Services manual. IBM provides (at release 1.12) sample JCL for an XPLINK compile, bind and execute, but no JCL for a non-XPLINK compile, bind and execute. The XPLINK sample works just as documented, but I would like to have non-XPLINK access to these services, so I'm trying to get the example working as a non-XPLINK program. I have the compile working using the EDCCB PROC from IBM (compile and bind, non-XPLINK) with options LONGNAME and GOFF added for the compile. However, using the IBM-supplied IMPORT statements for the non-XPLINK shared library code ('/usr/lib/iewbndd.x') still leaves me with unresolved external references for all of the binder API entry points, even though the IMPORT statements get no errors. I tried creating a copy of the IMPORT statements and adding the '/usr/lib' directory to each IMPORT request; IBM's copy says, for example: IMPORT CODE,'iewbndd.so','__iew_addA' So I changed them all to look like this one: IMPORT CODE,'/usr/lib/iewbndd.so','__iew_addA' But that did not help. I also tried adding a DD statement with PATH='/usr/lib/iewbndd.so' to the end of the binder SYSLIB DD concatenation, but that's a no-no that gets you a specific complaint and an RC=12 from the binder. TIA for anything you can do to help cure my ignorance. Peter -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html