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
