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

Reply via email to