Hello, I´ve been dealing with some linking errors while trying to build AMODE64 ICSF-aware programs.
Documentation clearly states that jsut referring to CSF.SCSFMOD0 on the DD SYSLIB should be enough as seen in http://publib.boulder.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.csfb400/lnkcal.htm . But following the documentation I was getting this all the time: IEW2469E 9907 THE ATTRIBUTES OF A REFERENCE TO CSNFKRC FROM SECTION GenChav#C DO NOT MATCH THE ATTRIBUTES OF THE TARGET SYMBOL. REASON 2 IEW2469E 9907 THE ATTRIBUTES OF A REFERENCE TO CSNFKRC FROM SECTION GenChav#C DO NOT MATCH THE ATTRIBUTES OF THE TARGET SYMBOL. REASON 2 FSUM3065 The LINKEDIT step ended with return code 8. A load module was save but was corrupted, with broken references to the CSF functions I was referring to. Listing the CSF.SCSFMOD0 library I could clearly see the module was there. Also, the reason code showed in the linker error message seemed to say that found a target module for my program call, but it was incompatible: IEW2469E THE ATTRIBUTES OF A REFERENCE TO symbol-name DO NOT MATCH THE ATTRIBUTES OF THE TARGET SYMBOL. REASON reason. Explanation: The interface attributes as indicated by the signatures stored in the ESDs and RLDs do not match. Either the reference was resolved to an incorrect module (which contained a symbol of the same name as the desired module) or there was an error in the source code. The possible values of the reason field are: 1. The ESD signature fields of the reference and target do not match. 2. The xplink attributes of the reference and target do not match. So, I had no idea if this was some sort of documentation error from IBM or if the z/OS team here screwed up during the s.o. upgrade. But I kept researching and found several references of AMODE64 compile/linking in the PKCS#11 implementation from IBM (PKCS#11 is an standard library call, it is pretty much a wrapper, so instead of calling the CSNxxxxx ICSF calls, you call them using another naming scheme just for portability purposes, easing cross platform development). There I found about SYS1.SIEALNKE and SYS1.SIEASID(CSFDLL64). First, SYS1.SIEALNKE, a library with CSF calls compiled in AMODE64 with a CSFDLL64 member, so I did refer to in on my linker job SYSLIB . Second, SYS1.SIEASID(CSFDLL64), is a "sidedeck" with a mapping scheme of 64 functions available in the target module for linking, this goes on the SYSLIN DD of my linker job... Just to note that CSF.SCSFMOD0 was ripped off from the SYSLIB. After that, tried new compile/link and it worked like a charm. Also, my caller AMODE64 app was able to call the ICSF function without issues. I am leaving this here if anyone struggles with the same problem and if any IBMer is seeing this, it would be nice to investigate more about the issue and maybe update the ICS Programming Guide manual, because the linkng instructions there do not work for AMODE64... My z/OS here is 1.11. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

