Warren Young a écrit :
> Jack Eidsness wrote:
>> 1) installing two different versions did not create a conflict; this
>> could be considered handy, if you had some reason to link to two
>> different versions of the library, but I think that's kind of far
> This was done on purpose. You need multiple versions of the library
> installed when you have binaries linked against one version of the
> library, then upgrade the library, then build more binaries without
> updating the old ones. This happens frequently outside the pure open
> source world.
This is the purpose of -soname.
Try to give some explanations
Without -soname, .so is used at build time AND at runtime.
With -soname, .so is used at build time, versionned library (.so.2.0,
p.e, name given on -soname option) is used at runtime.
From "ldd examples/resetdb"
libmysqlpp.so => /usr/lib64/libmysqlpp.so (0x00002aaaaaad5000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000035b5400000)
libmysqlpp doesn't use version.
libstdc++ use version.
And ll libstdc++.so*
libstdc++.so.5 -> libstdc++.so.5.0.7 (from compat-libstdc++-33-3.2.3)
libstdc++.so.6 -> libstdc++.so.6.0.8 (from libstdc++-4.1.1)
libstdc++.so -> libstdc++.so.6.0.8 (from gcc-c++-4.1.1, which is the
Using -soname, the .so (link) must be provided by mysql++-devel
sub-package as it is not required to run binaries.
Of course you could install only one libstdc++.so.5, but they
(.so.5.0.6, .so.5.0.7, ...) are supposed to be ABI compatible.
So the -soname only change when ABI change and binary compatibility is
I've look at bakefile documentation (quite poor on this feature). There
are options for "dll" (dllname, libname, version and so_version) but i
don't know how to use them...). Need more search/try.
Remi / Fedora contributor.