[fdo-internals] FDO 3.7 beta2 timeframe

Johan Van de Wauw johan.vandewauw at gmail.com
Fri Jun 8 19:09:05 PDT 2012


On Fri, Jun 8, 2012 at 3:05 PM, Jackie Ng <jumpinjackie at gmail.com> wrote:
> Just a thing about the cmake builds.

>
>  a) The CMake build produces binaries with different so names (eg.
> libFDO.so.3.7.0 instead of libFDO-3.7.0.so)
>  b) Doing symlink tricks (eg. Symlink libFDO-3.7.0.so to libFDO.so.3.7.0)
> doesn't work either as MapGuide will crash out trying to load these
> symlinked so files, though this may not even be a working solution (noob-ism
> showing here)

Just using symlinks will also cause problems outside mapguide. The
sonumber is part of the soname is part of a library, and it is the
name in the library that the linker will record. See eg objdump -p
libFDO-3.7.0.so
In the dynamic section you will find "  SONAME               libFDO.so.3"
This is what the linker will take when you link to that library (in
fact above this line you will see how libFDO links to other libs in
the same way). So that file should exist.

In fact what you want is not a library without a SOVERSION, but one
with a release number included in the library name. In
automake/libtool this is easy to accomplish using -release (
http://www.gnu.org/software/libtool/manual/html_node/Release-numbers.html#Release-numbers
).

AFAIK no such mechanism exists for cmake but it easy to do the same
thing, it requires 2 steps
1) remove the set_target_properties where the SOVERSION is set (it is
a bad SOVERSION anyway, soversions should be able to change
independently from version numbers)
2) replace the target_link_library name with one which includes the
version number, and change references accordingly.
An example patch is attached. similar patches are needed for every
library, and all libraries referencing FDO or other libraries should
be updated to FDO-${FDO_VERSION}.

Johan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fdocmake.patch
Type: application/octet-stream
Size: 784 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/fdo-internals/attachments/20120609/468a48d6/attachment.obj>


More information about the fdo-internals mailing list