On Tue, 16 Dec 2025 21:54:26 +0100, Radoslaw Skorupka <[email protected]> 
wrote:

>This is really weird and it breaks SMP/E logic.

It doesn't break the SMP/e logic. Understand that SMP/e uses utilities. In this 
case, binder / linkedit. You must understand how SMP/e works together with 
BINDER.

>Actually the most important for me is to *understand* the issue.

This is simple to understand when you compare how you use binder versus SMP/e.

1. You bind objects into a load module using includes. The load module is 
completely empty and completely built by what is included.
     INCLUDE OBJECT1
     INCLUDE OBJECT2
     NAME PROGRAM1

2. SMP/e can't do this because your target (not dist) libraries don't have any 
object (csect) libraries. They do not exist. Instead, SMP/e tells the binder to 
include the program first because it contains the current version of all the 
objects (csects).
     INCLUDE LINKLIB( IEBGENER )
     REPLACE IEBaaa
     INCLUDE IEBaaa
     NAME IEBGENER

3. Realize that REPLACE is for a CSECT name and INCLUDE is for an object that 
contains 1 or more csects. The developer has to tell SMP/e the csects contained 
in an object but if they get it wrong, then problems can occur.
     INCLUDE LINKLIB( IEBGENER )
     REPLACE IEBaaa1
     REPLACE IEBaaa2
     INCLUDE IEBaaa
     NAME IEBGENER
Notice we told SMP/e that object IEBaaa contains csect IEBaaa1 and IEBaaa2 but 
does not contain csect IEBaaa. This is acceptable. 

4. Realize that REPLACE actually means delete the specified csect currently in 
storage. If you don't REPLACE (delete) IEBaaa1, then it won't be updated from 
object IEBaaa and will be the old version.

Looking at your V2 output which applies FMID & PTFs at the same time:
IEW2322I 1220  154    INCLUDE SMPWRK3(BAZGPSAC) UW95965       SEQ # 000006
IEW2322I 1220  155     SETSSI 01115965
IEW2322I 1220  156    NAME BAZGPSAC(R)

We only see 1 INCLUDE. We can easily conclude that object BAZGPSAC from UW95965 
REPLACEs all csects known to SMP/e for this load module. We also know that 
multiple csects are in object BAZGPSAC because you specified NCAL and the 
module size is different by thousands of bytes, One or more PTFs (and FMID) 
prior to UW95965 has csects not in this PTF.

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

Reply via email to