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

Reply via email to