I have a very simple LE-enabled assembler program:
SYSSTATE ARCHLVL=2
CALLER CEEENTRY MAIN=YES,RMODE=ANY
CEEPCALL COBTEST,MF=(E,)
CEETERM
PPA CEEPPA ,
CEEDSA ,
CEECAA ,
END CALLER
This works under the following conditions:
- COBTEST is a COBOL V6.3 DLL and is "DLL linked" with CALLER.
- COBTEST is a COBOL V4.2 non-DLL and is static linked with CALLER.
However, if COBTEST is a COBOL V6.3 non-DLL and is static linked with CALLER,
it abends with an S0C1.
It appears that when a COBOL V6.3 program is static linked with an LE-assembler
main program it's wiping our or not properly setting CEECAACRENT, the address
of the writable static area.
Specifically, the CEEPCALL macro expansion has the following statement:
L 15,500(,12) LOAD 15 WITH CEECAACRENT
When working properly, this loads R15 with a valid address. But in the not
working scenario it's loading address 0.
Should this be working? Is this a bug? Am I doing something wrong?
Thanks,
Frank
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN