> On Unix as well as on VMS and others, it's
> often possible to upgrade a shareable library to a newer version
> without breaking the programs using it.

Of course.

> This requires the API to stay
> the same except for added functions, and for types and structures to
> never change (except for adding new types and new structures). 

But the flip side, which is what I was referring to, is when the
framework tries to use those new functions.  It needs to determine
that the new functions aren't present in a legacy plug-in and somehow
invalidate any calls to them.

Perhaps the missing piece of the puzzle here is that the standard 
loader will catch missing symbols after loading shared libraries.
Since this is handled by the system, we normally don't give it any
thought.

In contrast, with a plug-in the framework itself acts as the loader,
and it must detect mising symbols in older shared libraries.  Depending
on the way it's hooked, it either has to resolve each symbol individually
or a single structure and then check the version number.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to