Why not checksum (or otherwise securely hash) the memory images of the module 
after each one to be compared is LOADed to the same starting storage address so 
that address resolution doesn't cause irrelevant differences?  Wouldn't that be 
simpler?

Of course, then you would have to somehow deal with overlay modules and RMODE 
SPLIT modules . . .  Never mind, dumb idea.

Peter

-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Charles Mills
Sent: Wednesday, May 4, 2022 4:28 PM
To: [email protected]
Subject: Re: Checksum of "legacy" load module?

I should close the loop on this. I never actually did this, having determined 
that the checksum test would be negative (different) in any event.

It appears that depending on the order that PTFs were applied, the CSECTs are 
in a different order in the load module, and so two programs that are utterly 
functionally equivalent would have different checksums.

You know what would be an interesting product? A program that would take a load 
module, "decompose" it into its constituent CSECTs, and checksum them 
(including RLDs and ESDs), both individually and as a whole (in some consistent 
order, such as collating sequence by name). That would let you compare two load 
modules "logically," and if they were different, tell you which CSECTs were 
different, independent of CSECT order, block size, etc. 

(Yes, you can hypothesize a program where CSECT order made a difference, but it 
sounds unusual to me.)

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Charles Mills
Sent: Thursday, April 28, 2022 8:57 AM
To: [email protected]
Subject: Re: Checksum of "legacy" load module?

I apologize. Other things got in the way and I have not yet done this.

I recognize the great possibility of "false negatives": two load modules could 
be functionally identical but checksum differently.

One might even quibble about the meaning of "functionally identical": if one 
load module does LHI R0,0 and another does LA R0,0 are they functionally 
identical? Most people would say they were, but obviously a checksum program 
would (or should!) disagree.

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Seymour J Metz
Sent: Thursday, April 28, 2022 5:23 AM
To: [email protected]
Subject: Re: Checksum of "legacy" load module?

If you do a COPY then the records, and hence the hash, should be identical.
It's COPYMOD that reblocks.

I don't know of any utility that will compare only the csect text. Further, two 
load modules might differ only in the RLD records, and that definitely should 
be picked up as a change in version.

----------------------------------------------------------------------

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

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

Reply via email to