This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: A patch for default version and archive


   From: Ulrich Drepper <drepper@redhat.com>
   Date: 14 Nov 2000 01:58:18 -0800

   When we developed the versioning handling Eric Youngdale, myself, and
   to some extend Ian discussed all these things over an extended period
   of time.  We knew how the result would look like and that we stretched
   the original model already to a point where it is not 100% guaranteed
   that you catch all errors.  You are again far too fast with your
   implementation since the consequences are not clear.  Poor Nick cannot
   do much but seeing that nothing breaks and I had no time to review all
   this (leaving alone Eric and Ian as it seems).

I never really understood versioning, actually.  I more or less
understand what is supposed to happen in the simple case of a shared
object with versioned symbols, but I never fully grasped the use of @
symbols.

My guess is that the @ symbols serve two purposes.  One is to make it
possible to specify the version of a symbol in a .o file rather than
requiring a version script when building a shared object.  The other
is to simplify the implementation within the existing GNU linker code,
except that that turned out to be a mistake, since it actually makes
the implementation more complex and harder to understand.

If we eliminated the @ symbols, then the creator of a shared object
would have to specify the versions at creation time, and I believe the
situation would be more comprehensible, albeit much harder on library
maintainers.  I'm not advocating this course of action, but we should
think about what it would mean.

What I think we really need to do is to write down the semantics of
versioned symbols.  I actually asked Eric to do this long ago so that
I could understand what was going on, but he never found the time to
do it.  Without some agreed upon definition of what versioned symbols
actually mean, arguments of the sort occurring now between HJ and
Ulrich are inevitable.  It's impossible for third parties to
adjudicate them, because nobody knows what is supposed to happen.  So
I think that arguing over the patch is putting the cart before the
horse.

Unfortunately, it seems unlikely that anybody will write down how
versioned symbols should work, so the situation is likely to remain
confusing for some time to come.

Ian

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]