[Info-vax] Linking problem with multiply defined symbols, how to resolve?
Richard Levitte
richard at levitte.org
Fri Sep 30 10:30:14 EDT 2022
onsdag 28 september 2022 kl. 14:41:09 UTC+2 skrev hb:
> $ link bar,tt:/opt/map=bar/cross/full
> foo/share
> ^Z
> %LINK-W-MULDEF, symbol FOOBAR multiply defined
> in module BAR file DSA3:[DECUSERVE_USER]BAR.OBJ;3
> $
>
> then using a linker cluster and /selective will work for for you:
>
> $ link/exe=bar/map=bar/cross/full tt:/opt
> cluster=a,,,bar
> foo/share/sel
> ^Z
> $
So this is the part that's a mystery to me... and I gotta confess, 'cluster' is magic to me, I haven't been able to wrap my brains around it and have never really used it other than as an incantation that someone else gave me.
See, I've actually tried /SELECTIVE before, believing the documentation that essentially says "... only those symbols that have been referenced by previously processed input files". However, when I tried just adding it to the shareable image in my example, I ended up with a shitload of undefined symbol references instead, like this:
%ILINK-W-USEUNDEF, undefined symbol OSSL_PARAM_locate referenced
section: $CODE$
offset: %X0000000000000040 slot: 2
module: digestcommon
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]LIBCOMMON.OLB;1
Looking at it all now, with your example in mind, I can only assume that my assumption that files given in the /OPT file are treated top to bottom as written is more like a delusion, and that CLUSTER helps getting things processed in the order I desire.
More information about the Info-vax
mailing list