How do you do this at runtime in a fast way?

I would first walk up the save area, get the entry point address of the
caller and look if there is the LE signature at position 4 (X'01' followed
by 'CEE'), so I know that is is a PL/1 or C compiler (maybe COBOL, too,
I'm not sure about this). Then I could examine the PPA1, where the name of
the function is stored. But, IMHO, to get the information about the compiler
(and the language, and the version, etc.), I have to read the IDR records
of the load module, isn't it?

The old PL/1 compilers start with STM at the entry point and have the
name of the CSECT immediately before the EP.

Kind regards

Bernd



Am 07.04.2012 01:30, schrieb Steve Comstock:
On 4/6/2012 5:23 PM, Ken Brick wrote:
many years ago I needed to know, in DOS/VS, whether an assembler routine was called from a PL/I or assembler module. I put in a test to see if in DOS terms the weak extrn PLIMAIN was not 0. Non zero meant a PL/I module was present.

Ken

On 7/04/2012 03:46 AM, Phil Smith wrote:
Is there a reliable way to tell we were called by PL/I? If so, we could ignore zeroes for PL/I. And document it. ISTR there being a magic fullword in the
savearea for PL/I?



Well, you could maybe do the same thing about the
PL/I LE signature CSECT, CEESG011.



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN

Reply via email to