[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