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