[OpenAFS-devel] symbol _error_message conflict on 10.3 (now des_init_mutex)
Dave Botsch
botsch@cnf.cornell.edu
Wed, 21 Feb 2007 11:34:18 -0500
To sort of reply to my own message and ask another question...
I got ld to do the right thing by putting the -m before the -twolevel_namespace
flag (why does this matter? Who knows).
That, however, gives the infamous undefined symbols _des_init_mutex and
_des_random_mutex mentioned in
http://www.openafs.org/pipermail/openafs-devel/2005-May/012240.html
though, the discussion there seems to quickly migrate from apple to windows.
>From what I'm reading in that thread, it seems these mutexes are
declared but not defined/initialized hence the apple linker doesn't include
them in the library table of contents?
On Tue, Feb 20, 2007 at 05:18:39PM -0500, Dave Botsch wrote:
> I'm not sure it's an issue under 10.4 with the conflicts.
>
> As far as 10.3...
>
> supposedly the two linker flags you mention are the default for 10.3 and up
> (but I had tried putting them in there as other linker options, anyway), and
> still the multiple symbol definition gives an error and not a warning.
>
> I'm looking back at the man page again for anything else and did find the -m
> option, though, the man page seems to be wrong about how to use this option.
>
> On Tue, Feb 20, 2007 at 04:56:49PM -0500, Marcus Watts wrote:
> > ...
> > > what's more interesting is that under 10.4, stuff builds. It appears that using
> > > the 10.4SDK, xcode is able to do its two level namespace trick and just gives
> > > an ld warning that that symbol is there multiple times.
> > >
> > > Under 10.3SDK, however, (even when building on a 10.4 box), it seems that this
> > > doesn't work, even if I specify the twolevel namespace linker option. So,
> > > something is different under 10.3, but what? Could it have something to do w.
> > > the way the afs libs or the kerberos framework is built under 10.3?
> > ...
> >
> > sure, it's possible.
> > man ld
> > describes these:
> > env LD_TWOLEVEL_NAMESPACE=1
> > -twolevel_namespace
> > -multiply_defined warning
> > which will certainly modify that "two level namespace trick" so probably
> > affect the results. There looks to be quite a few more related ld
> > options as well, which might possibly affect how libraries are built (and
> > hence explain the behavior you are seeing). 'otool' is at least capable
> > of printing the two-level namespace hints.
> >
> > There's a pretty good chance that the object you built under 10.4 isn't
> > completely healthy. Most likely, one set or the other of error messages
> > won't be visible - which set is visible may depend on which namespace
> > was visible to the routine calling error_message(). This may not
> > matter greatly to you - if you are getting link errors mainly or only
> > on of aklog, then you may not care because the distribution versions of
> > aklog don't usually try to lookup kerberos errors.
> >
> > -Marcus Watts
> >
>
> --
> ********************************
> David William Botsch
> Programmer/Analyst
> CNF Computing
> botsch@cnf.cornell.edu
> ********************************
> _______________________________________________
> OpenAFS-devel mailing list
> OpenAFS-devel@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-devel
>
--
********************************
David William Botsch
Programmer/Analyst
CNF Computing
botsch@cnf.cornell.edu
********************************