> and it finds many but not quite all of them.  

Basically, it finds

ST   1,FOO where FOO is defined in the CSECT something like

FOO   DC   F'0'

but it does not find things like the following construct that IBM macros are
or were fond of

CNOP  0,4
BAL  1,*+8
DC    F'0'
ST    2,0(0,1)

In the first case it "knows" that FOO is in a code section but in the latter
it only knows that R1 is pointing "somewhere."

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of John Gilmore
Sent: Sunday, July 22, 2012 6:13 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: re-entrant modules and the binder

I am not sure that I fully understand exactly what you want to do or the
exact sequence in which you want to do it.

Your objective is, however, clear: You want to be able to use the CICS
RENTPGM=PROTECT facility.  If 1) you specify this option for a CICS
application program (AP) and 2) CICS honors it, that AP is placed in
read-only storage.

A later attempt to execute such an AP will have dire consequences if it in
fact modifies itself.  You may not therefore specify this option for a load
module or program object that contains a non-reentrant assembly-language
module or modules.

As you have noted, there is no great difficulty about making your COBOL
modules reentrant.  Instructing your compiler to do so will accomplish this.

Specifying the RENT option when you assemble your HLASM subroutines
instructs the HLASM to check your code for non-reentrant constructs, and it
finds many but not quite all of them.  (You can and should use the
&SYSOPT_RENT boolean within  each assembly unit to ensure that the RENT
option has in fact been specified for it.)

I strongly recommend that you also make these assembly-language modules
LE-compatible.  Using the LE's LIFO storage-management facilities will make
the task of making these modules reentrant much easier.

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

Reply via email to