To be specific: I have two versions of libssl in /lib: libssl.so.4 and libssl.so.6. What happens is that the .so.4 version is always linked -- what determines this behavior? (and how could one therefore change it, ie specify which version to choose?) Here's what happens: Notice I'm doing nothing but linking libssl to an empty library so there are no other dependencies that could affect the result. g++ foo.so -shared -lssl ldd foo.so |grep ssl libssl.so.4 => /lib/libssl.so.4 (0xf7f04000) -- View this message in context: http://old.nabble.com/how-does-linker-choose-version-of-shared-lib--tp31498483p31498483.html Sent from the gcc - Help mailing list archive at Nabble.com.