Take what I say with a grain of salt. Since one of the modules does not define TARGET1 as weak, then it can not be treated as weak anywhere.
Bob Netzlof On 3/19/20, David Eisenberg <[email protected]> wrote: > Hi everyone, > > I'm seeing a result in the binder Cross-Reference table that looks odd; I > hope that someone can help me to understand. > > I have two HLASM source modules, MODULEA and MODULEB (as below). Each > generates an object module. > > MODULEA CSECT > WXTRN TARGET2 > DC V(TARGET1) > DC V(TARGET2) > END > > MODULEB CSECT > WXTRN TARGET1 > DC V(TARGET1) > END > > I linked these two object modules together (along with no other object > modules). As expected, neither TARGET1 nor TARGET2 are resolved by the > binder. But only TARGET1 generates an IEW2456E "unresolved symbol" error > message, and that much I understand. > > In the binder output Cross-Reference table, this is what I see: > > ------------- R E F E R E N C E -------------------------- T A R G E T > ----- > CLASS ELEMENT | > OFFSET SECT/PART(ABBREV) OFFSET TYPE | SYMBOL(ABBREV) SECTION > (ABBREV) > | > 0 MODULEA 0 V-CON | TARGET1 > $UNRESOLVED > 4 MODULEA 4 V-CON | TARGET2 > $UNRESOLVED(W) > 80 MODULEB 0 V-CON | TARGET1 > $UNRESOLVED > > What I don't understand is why TARGET1 is not reported as a *weak* > unresolved reference within MODULEB. In other words, I would have expected > the third entry in the table above to say $UNRESOLVED(W), because TARGET1 is > declared as weak in MODULEB. > > I really just want to make sure that I'm interpreting what I see correctly. > Any help would be appreciated; thank you! > > David > -- Bob Netzlof a/k/a Sweet Old Bob
