How is the program linked? The S0C4 would occur if you linked the program as reentrant since you are modifying the program storage.
Chuck Arney Arney Computer Systems -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Etienne Thijsse Sent: Wednesday, May 01, 2013 10:28 AM To: [email protected] Subject: Mixing C and assembler - under OpenMVS Hi all, I am trying to call an assembler function from C: C-code (bla.c): #pragma linkage(BLA,OS) main() { BLA(); printf("No crash.\n"); } Assembler code (bla1.s): BLA CSECT BLA MODE ANY SAVE (14,12) BALR 3,0 USING *,3 ST 13,SAVE+4 <<<<< crashes here * todo: add useful code here L 15,=X'01' L 13,SAVE+4 RETURN (14,12),RC=(15) SAVE DS 18F END So the only code in this assembler source is the "standard linkage" stuff, which I got from the "MVS Assembler Language" book. I compiled and linked this under OpenMVS like this: cc bla.c bla1.s which gives me an executable 'a.out' in the HFS. Running this under OpenMVS crashes in the "ST 13,SAVE+4" line, SC04. If I comment out that line and the corresponding L13,SAVE+4 line, it does not crash anymore. I don't understand this... This ST line is part of the standard linkage 'protocol'; the area where the ST stores is declared in the SAVE DS 18F line at the bottom --- Why does this crash? What is weirder still is that I can copy a.out to a PDSE member, and submit it with some JCL that has CEE.SCEELIB in its STEPLIB; this does not crash, without SCEELIB it also crashes. Adding CEE.SCEELIB to the STEPLIB environment variable in OpenMVS however does not help, it keeps crashing, SC04. Anyone have an idea? Thanks, Etienne ---------------------------------------------------------------------- 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
