On 3/10/2013 8:14 PM, chin ben wrote:
Steve,
Just want to replace subpgm in oldpgm with subpgm from newpgm.
Thx

OK, but it is still not clear to me: do you have the new subpgm
as a separate load module or object module?

If you have the new SUBPGM in a load module library,
say MY.LOADLIB and if both OLDPGM and NEWPGM are in
VENDOR.LOADLIB, this should work:

//STEP    EXEC PGM=IEWL,PARM='XREF,LIST'
//SYSPRINT DD  SYSOUT=*
//SYSLIB   DD  DSN=MY.LOADLIB,DISP=SHR
//SYSLMOD  DD  DSN=VENDOR.LOADLIB,DISP=SHR
//SYSLIN   DD  *
 INCLUDE SYSLIB(SUBPGM)
 INCLUDE SYSLMOD(OLDPGM)
 ENTRY OLDPGM
 NAME OLDPGM(R)


Or do you have to try and extract the new subpgm from newpgm
and then replace the old subpgm in oldpgm with the new subpgm
from newpgm? That's a little trickier, but here is one way
that should work:

//STEP    EXEC PGM=IEWL,PARM='XREF,LIST'
//SYSPRINT DD  SYSOUT=*
//SYSLIB   DD  DSN=VENDOR.LOADLIB,DISP=SHR
//SYSLMOD  DD  DSN=VENDOR.LOADLIB,DISP=SHR
//SYSLIN   DD  *
 REPLACE pgm1  <-- put a REPLACE statement for each CSECT
     .         <-- in NEWPGM that is not needed in OLDPGM
     .
     .
 INCLUDE SYSLIB(NEWPGM)
 INCLUDE SYSLMOD(OLDPGM)
 ENTRY OLDPGM
 NAME OLDPGM(R)


in both cases you may need to add your SCEELKED library
to the SYSLIB concatenation


Date: Sun, 10 Mar 2013 20:10:00 -0600
From: [email protected]
Subject: Re: iewl syslin
To: [email protected]

Well your notes are confusing.

First in your original post you implied the subroutine
is not a CSECT, but it clearly is.

Now it looks like you are trying to say that OLDPGM calls
SUBPGM (the old version), then you switch to say NEWPGM
calls PROGRAM1 and SUBPGM (the new version), is that correct?

So are you trying to extract SUBPGM from NEWPGM and put
that version into OLDPGM, leaving NEWPGM unchanged? Do you
have the object or load module of the new SUBPGM? You
really aren't clear about what you have and what you want.

Please take the time and be more specific.


On 3/10/2013 7:02 PM, chin ben wrote:
Sources
are not available, vender loadlib are shipped.



Sorry,
had to change name of programs (Ie. vender):

In old.vender.loadlib(oldpgm):

Symbol   Type Offset  Length Textclass  Translator VV
MM  Date          A/M R/M

oldpgm    SD      00
FB79 B_TEXT     COBOL II   14 00
2002/07/12     24  24

subpgm    SD   1E360    8448
B_TEXT     COBOL II   14 00
1995/10/10    ANY  24



In new.vender.loadlib(newpgm):

Symbol   Type Offset  Length Textclass  Translator VV
MM  Date          A/M R/M

program1 SD      00    1079
B_TEXT     COBOL II    13 02
1992/06/17    ANY  24

subpgm   SD    9980    8A09
B_TEXT     COBOL II    14 00
2011/09/26    ANY  24



oldpgm
source is available, but several calls are vender sub-programs. Vender's subpgm
has been updated and has to be replaced in oldpgm.


IEW2278I B352 INVOCATION PARAMETERS - XREF

IEW2322I 1220  1    INCLUDE OBJECT

IEW2322I 1220  2    INCLUDE SYSLIB(OLDPGM)  <- 1995


IEW2322I 1220  3    INCLUDE SYSLIB(NEWPGM)  <- 2011


IEW2322I 1220  4    CHANGE
SUBPGM(SUBPGM)  <- replace with 2011


IEW2403W 5E12 A REQUEST TO CHANGE CSECT OR SYMBOL SUBPGM WAS
RECEIVED, AND THE OLD CSECT OR SYMBOL WAS NOT FOUND.

IEW2322I 1220  6    ENTRY PROGRAM1

IEW2322I 1220
7     NAME OLDPGM(R)





Thx all for input.





Date: Sun, 10 Mar 2013 10:48:19 -0500
From: [email protected]
Subject: Re: iewl syslin
To: [email protected]

Shmuel wrote:

<begin extract>
INCLUDE specifies the name of a member, not the name of a CSECT, and
you nost certainly can have two members of a library containing the
same CSECT name. The OP needs to disclose more data in order to
diagnose his problem.
<end extract>

and he is of course quite right.  It is occasionally convenient to
have two differently named object modules for two different versions
of the same CSECT, RSECT, or the like in a PDS[E], but this scheme
should really only be used by very knowledgable and experienced
people; and even for them there are better, more robust ways to do
such things.

If, as I suspect, the OP is trying to replace an entry point and its
associated code that does NOT correspond to a separate CSECT, he can
do that too.  The binder's inclusion unit is indeed a CSECT, RSECT, or
the like; but it can resolve external references in one of them to one
of N others.  As Shmuel says, we need to know more.

John Gilmore, Ashland, MA 01721 - USA

----------------------------------------------------------------------
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



--

Kind regards,

-Steve Comstock



--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-355-2752
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment

* Try our tool for calculating your Return On Investment
    for training dollars at
  http://www.trainersfriend.com/ROI/roi.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to