Way back, On Mon, 5 Dec 2011 09:50:59 -0500, Kurt Quackenbush wrote:
>
>> In the extreme, what happens if two or more MOD elements
>> contain an identical CSECT?
>
>Without a more specific description of the scenario its hard to say, but
>as you surmise, this could get interesting.
> 
When I asked this, back then, I thought the question was largely academic.
But I discovered in the past week that we are entangled with a fourth-party
SMP/E-clueless (but very helpful -- they have accommodated all our
requirements -- we just never thought to require that CSECTs not be
duplicated in multiple MOD elements) who delights in replicating
CSECTS among multiple MOD elements intended for redistribution to
our customers.  They say, "It doesn't matter; Binder will sort out and
eliminate duplicates."  But Bad Things happen when I attempt to RESTORE
some PTFs.

Fortunately, as far as I see, when two MOD elements share a CSECT they
are entirely identical -- the internal time stamps and even MD5 checksums
match.

So, I decided to try to clean up the (few) instances that have escaped to
the field with a PTF (abridged):

++ PTF ...
++ MOD( BADMOD ) CSECT( TOM DICK HARRY) DELETE .
++ JCLIN
//STEP  EXEC  PGM=IEWL
//SYSLIN  DD  *
  INCLUDE DLIB(GOODMOD)
  NAME LOADMOD(R)
++ MOD( GOODMOD ) CSECT( TOM DICK HARRY ) .
    (inline MOD element body)

When I APPLYed that PTF, SMP/E generated commands in SYSLIN:

  REPLACE TOM
  REPLACE DICK
  REPLACE HARRY
  INCLUDE  SYSLMOD(LOADMOD)
  NAME  LOADMOD(R)

it did _not_ generate an INCLUDE for GOODMOD even though the JCLIN
should have added to its MOD entry an LMOD subentry for LOADMOD and
MOD element GOODMOD was delivered in the PTF.  And I got UNRESOLVED
for all the labels in TOM, DICK, and HARRY.

Ouch!

Like any incredulous user, I tried to APPLY the same PTF a second time.
This time, SMP/E generated as SYSLIN:


  INCLUDE  DLIB(GOODMOD)
  INCLUDE  SYSLMOD(LOADMOD)
  NAME  LOADMOD(R)

No REPLACE commands; no UNRESOLVED labels!

Is this WAD?

I'm somewhat reluctant to deliver the PTF and tell our
customers, "We have a lurking pitfall.  To clean it up, you
must APPLY this PTF.  Twice!"

Is there a less bizarre way to accomplish this?

What SMP/E could do to most help us ISVs avoid this pitfall
is to report a serious error when we name any CSECT in
two or more MOD elements.

Thanks,
gil

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

Reply via email to