On Sun, Jan 25, 2015 at 10:35 PM, Matthew Barr <mb...@mbarr.net> wrote:

> The real question is what  happens if you use a different version of
> openssl for compiling Middle than you do for Top.


Depends on whether Middle and Top are exchanging OpenSSL-related values
(e.g. SSL connection handles), or using them independently. In the former
case, you need versions to match (and ideally for Middle to re-export the
stuff it uses from OpenSSL, possibly wrapped, and Top to get its dependency
from that by using the Middle-provided wrapper). In the latter case, it
doesn't matter any more than whether an OpenSSL client and server are using
the same version --- *unless* the library in question uses a common global
table for some kind of global state, in which case initializing it from one
version will cause calls made from the other version to behave erratically.
(I don't recall OpenSSL doing this. libiconv does, which is why building
software on a Mac runs into symbol errors involving libiconv so often: the
symbol errors are forced, since otherwise you'd find out when your program
dumped core in one of the iconv library calls.)

See "diamond dependency problem" for a variant of the first case.

-- 
brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
_______________________________________________
Tech mailing list
Tech@lists.lopsa.org
https://lists.lopsa.org/cgi-bin/mailman/listinfo/tech
This list provided by the League of Professional System Administrators
 http://lopsa.org/

Reply via email to