Discussion:
iewl syslin
(too old to reply)
Ben Chin
2013-03-09 20:02:26 UTC
Permalink
Hello,
It's been a some time (semi-retired), but I have a cobol program which has many sub-programs.
The problem I'm having is both includes have same sub-program one old and newer.
The sub-program is not defined as an csect in either programs, when attempting to change / replace in IEWL sub-program is NOT a CSECT OR SYMBOL WAS NOT FOUND.

Is there a way to extract/replace sub-program old for newer without sub-program being a csect?
Thx



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steve Comstock
2013-03-09 20:07:44 UTC
Permalink
Post by Ben Chin
Hello,
It's been a some time (semi-retired), but I have a cobol program which has many sub-programs.
The problem I'm having is both includes have same sub-program one old and newer.
The sub-program is not defined as an csect in either programs, when attempting to change / replace in IEWL sub-program is NOT a CSECT OR SYMBOL WAS NOT FOUND.
Is there a way to extract/replace sub-program old for newer without sub-program being a csect?
Thx
Not exactly sure what you're saying, but it sounds like
you're talking about nested programs; in this case no
CSECT is created for the nested programs, so, no you
can't replace using the binder (nee Linkage Editor).

Do you have the source? Are you really talking about
nested programs? That's the only way I know of for a
subprogram to be "not defined as an csect".
--
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 ***@listserv.ua.edu with the message: INFO IBM-MAIN
Gerhard Adam
2013-03-09 20:09:16 UTC
Permalink
Something is missing. Since the INCLUDE statement species the DD statement for the library in which the routine resides, you cannot have two of them with the same name in that library. I also can't think of any circumstance where a program exists that isn't a CSECT.

This would suggest that your problem is an improperly defined reference to the subroutine in question [i.e. SYMBOL NOT FOUND].

Adam

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Ben Chin
Sent: Saturday, March 09, 2013 11:52 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: iewl syslin

Hello,
It's been a some time (semi-retired), but I have a cobol program which has many sub-programs.
The problem I'm having is both includes have same sub-program one old and newer.
The sub-program is not defined as an csect in either programs, when attempting to change / replace in IEWL sub-program is NOT a CSECT OR SYMBOL WAS NOT FOUND.

Is there a way to extract/replace sub-program old for newer without sub-program being a csect?
Thx



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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
shmuel+ (Shmuel Metz , Seymour J.)
2013-03-10 14:55:09 UTC
Permalink
Post by Gerhard Adam
Something is missing. Since the INCLUDE statement species the DD
statement for the library in which the routine resides, you cannot
have two of them with the same name in that library. I also can't
think of any circumstance where a program exists that isn't a
CSECT.
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.
--
Shmuel (Seymour J.) Metz, SysProg and JOAT
Atid/2 <http://patriot.net/~shmuel>
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Charles Mills
2013-03-09 23:28:55 UTC
Permalink
Like others I don't fully understand the question, but I can say that I think a CSECT is the smallest chunk of "stuff" that the link editor can manage. I don't think it can ever replace part of a CSECT.

All, perhaps what he is saying is this?

He includes module A with entry points X and Y
He wants to include another module B with entry point Y (and perhaps others) and use that Y, not the one in A (but still keep the X from A).

In which case you should be able to do something like (from memory -- look up the exact syntax)

REPLACE Y(NOUSEME)
INCLUDE A
...

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Ben Chin
Sent: Saturday, March 09, 2013 11:52 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: iewl syslin

Hello,
It's been a some time (semi-retired), but I have a cobol program which has many sub-programs.
The problem I'm having is both includes have same sub-program one old and newer.
The sub-program is not defined as an csect in either programs, when attempting to change / replace in IEWL sub-program is NOT a CSECT OR SYMBOL WAS NOT FOUND.

Is there a way to extract/replace sub-program old for newer without sub-program being a csect?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steve Comstock
2013-03-10 02:35:47 UTC
Permalink
Post by Charles Mills
Like others I don't fully understand the question, but I can say that I
think a CSECT is the smallest chunk of "stuff" that the link editor can manage. I
don't think it can ever replace part of a CSECT.

That's correct.
Post by Charles Mills
All, perhaps what he is saying is this?
He includes module A with entry points X and Y
He wants to include another module B with entry point Y (and perhaps others) and use that Y, not the one in A (but still keep the X from A).
In which case you should be able to do something like (from memory -- look up the exact syntax)
REPLACE Y(NOUSEME)
INCLUDE A
...
Charles
Hmm. Alternate entry points. Hadn't considered that, but it's
possible, I guess. Let's see how this might be done using binder
control statements ...

INCLUDE SYSLIB(B) <-- to do automatic replace, bring in the version
you want to win first; B includes Y
INCLUDE SYSLIB(A) <-- now bring in A containing X and Y; the
binder will resolve references to 'y'
to be 'Y' in 'B'
ENTRY A <-- establish the main entry point
NAME A(R) <-- establish the name the module is saved under


The syntax is good, and automatic replace works with CSECTs,
but I'm not really sure if the binder supports automatic
replacement for alternate entry points. I'm unable to
test that; perhaps someone in the list can do that.

And, of course, this is all guesswork about what the OP is trying to say!
Post by Charles Mills
-----Original Message-----
Sent: Saturday, March 09, 2013 11:52 AM
Subject: iewl syslin
Hello,
It's been a some time (semi-retired), but I have a cobol program which has many sub-programs.
The problem I'm having is both includes have same sub-program one old and newer.
The sub-program is not defined as an csect in either programs, when attempting to change / replace in IEWL sub-program is NOT a CSECT OR SYMBOL WAS NOT FOUND.
Is there a way to extract/replace sub-program old for newer without sub-program being a csect?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
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 ***@listserv.ua.edu with the message: INFO IBM-MAIN
shmuel+ (Shmuel Metz , Seymour J.)
2013-03-10 14:55:42 UTC
Permalink
The syntax is good, and automatic replace works with CSECTs, but
I'm not really sure if the binder supports automatic replacement
for alternate entry points.
The binder supports renaming an entry point with the CHANGE statement,
but there's no way to tell if that's what the OP wants without more
information from him.
--
Shmuel (Seymour J.) Metz, SysProg and JOAT
Atid/2 <http://patriot.net/~shmuel>
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
John Gilmore
2013-03-10 15:48:27 UTC
Permalink
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 ***@listserv.ua.edu with the message: INFO IBM-MAIN
chin ben
2013-03-11 01:02:32 UTC
Permalink
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
Subject: Re: iewl syslin
<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,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steve Comstock
2013-03-11 02:10:12 UTC
Permalink
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.
Post by chin ben
Sources
are not available, vender loadlib are shipped.
Sorry,
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
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
Subject: Re: iewl syslin
<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,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
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 ***@listserv.ua.edu with the message: INFO IBM-MAIN
chin ben
2013-03-11 02:14:24 UTC
Permalink
Steve,
Just want to replace subpgm in oldpgm with subpgm from newpgm.
Thx
Date: Sun, 10 Mar 2013 20:10:00 -0600
Subject: Re: iewl syslin
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.
Post by chin ben
Sources
are not available, vender loadlib are shipped.
Sorry,
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
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
Subject: Re: iewl syslin
<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,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
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,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steve Comstock
2013-03-11 12:03:34 UTC
Permalink
Post by chin ben
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
Post by chin ben
Date: Sun, 10 Mar 2013 20:10:00 -0600
Subject: Re: iewl syslin
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.
Post by chin ben
Sources
are not available, vender loadlib are shipped.
Sorry,
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
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
Subject: Re: iewl syslin
<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,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
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 ***@listserv.ua.edu with the message: INFO IBM-MAIN
Clark Morris
2013-03-11 13:33:13 UTC
Permalink
Post by chin ben
Steve,
Just want to replace subpgm in oldpgm with subpgm from newpgm.
You need to get with the vendor. I also am surprised that the vendor
is still using COBOL II which probably is out of service when the
current COBOL is Enterprise COBOL. Since I don't have a compiler at
home (retired) I can't check whether CSECTs are generated for nested
programs.

A nested program structure is
ID DIVISION.
PROGRAM-ID. MAINPGM.
much code
ID DIVISION.
PROGRAM-ID. NESTPGM1.
much code
END PROGRAM.
END PROGRAM.

Clark Morris
Post by chin ben
Thx
Date: Sun, 10 Mar 2013 20:10:00 -0600
Subject: Re: iewl syslin
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.
Post by chin ben
Sources
are not available, vender loadlib are shipped.
Sorry,
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
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
Subject: Re: iewl syslin
<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,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
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,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
shmuel+ (Shmuel Metz , Seymour J.)
2013-03-11 17:54:08 UTC
Permalink
Post by chin ben
subpgm SD 1E360 8448
That's a CSECT.
Post by chin ben
IEW2322I 1220 4 CHANGE
SUBPGM(SUBPGM) <- replace with 2011
5.1.2 Placement of control statements

Unless the -IMMED option is specified, the control statement
(such as CHANGE or REPLACE) used to specify an editing service
must immediately precede either the module to be modified or the
INCLUDE statement that specifies the module. If an INCLUDE
statement specifies several modules, the CHANGE or REPLACE
statement applies only to the first module included.

Also, the old and new names are the same.

INCLUDE OBJECT
REPLACE subpgm
INCLUDE SYSLIB(OLDPGM)
REPLACE program1
INCLUDE SYSLIB(NEWPGM)

will let oldpgm call the version of subpgm from newpgm without
dragging in program1 from newpgm. Is that what you're trying to do?
--
Shmuel (Seymour J.) Metz, SysProg and JOAT
Atid/2 <http://patriot.net/~shmuel>
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
chin ben
2013-03-12 02:29:03 UTC
Permalink
Hello all,
Gotten pass change/replace issue, now encountering S0C4 issue in a 1993 sub-pgm3.
How many more incompatible sub-pgms will be required to satisfy vender call routines modification?
Thus, kicking issue back to vender.
Thx for all help.
Date: Mon, 11 Mar 2013 13:37:45 -0400
Subject: Re: iewl syslin
Post by chin ben
subpgm SD 1E360 8448
That's a CSECT.
Post by chin ben
IEW2322I 1220 4 CHANGE
SUBPGM(SUBPGM) <- replace with 2011
5.1.2 Placement of control statements
Unless the -IMMED option is specified, the control statement
(such as CHANGE or REPLACE) used to specify an editing service
must immediately precede either the module to be modified or the
INCLUDE statement that specifies the module. If an INCLUDE
statement specifies several modules, the CHANGE or REPLACE
statement applies only to the first module included.
Also, the old and new names are the same.
INCLUDE OBJECT
REPLACE subpgm
INCLUDE SYSLIB(OLDPGM)
REPLACE program1
INCLUDE SYSLIB(NEWPGM)
will let oldpgm call the version of subpgm from newpgm without
dragging in program1 from newpgm. Is that what you're trying to do?
--
Shmuel (Seymour J.) Metz, SysProg and JOAT
Atid/2 <http://patriot.net/~shmuel>
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
shmuel+ (Shmuel Metz , Seymour J.)
2013-03-10 14:55:26 UTC
Permalink
In <***@listserv.ua.edu>, on
03/09/2013
Post by Ben Chin
It's been a some time (semi-retired), but I have a cobol program
which has many sub-programs. The problem I'm having is both
includes have same sub-program one old and newer. The sub-program
is not defined as an csect in either programs, when attempting to
change / replace in IEWL sub-program is NOT a CSECT OR SYMBOL WAS
NOT FOUND.
What is your input in SYSLIN and what is the text of the error
message?
Post by Ben Chin
Is there a way to extract/replace sub-program old for newer without
sub-program being a csect?
Normally the newer version would have the same CSECT and ENTRY names
as the old. Could you give the CSECT and ENTRY names for your old and
new versions.
--
Shmuel (Seymour J.) Metz, SysProg and JOAT
Atid/2 <http://patriot.net/~shmuel>
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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