MantisBT - CMake
View Issue Details
0010210CMakeCMakepublic2010-01-31 09:502010-02-01 10:06
Artyom 
Brad King 
normalfeaturealways
closedfixed 
 
 
0010210: CMake uses incorrect SONAME naming policy under Cygwin and MinGW standards
Dll platform do not have real "so-name" but however they are simulated
file with dll naming convention used under MinGW and Cygwin.

For example library "neon"

libneon.so installed under linux as:

   lib/libneon.so -> libneon.so.27.1.4
   lib/libneon.so.27 -> libneon.so.27.1.4
   lib/libneon.so.27.1.4

Where application is looking for lib/libneon.so.27 -- the current binary interface version -- 27 is actually the ABI version.

In parallel older version:

   lib/libneon.so.25 -> libneon.so.27.0.5
   lib/libneon.so.25.0.5

May be installed and not interfere older version of libneon.

Under Cygwin same is done as installing DLL with

   lib/libneon.dll.a
   bin/cygneon-27.dll

And older:

   bin/cygneon-25.dll

When the application is linked for cygneon-27.dll.

Similar CMake configuration for Neon would be:

set_target_properties(neon PROPERTIES
                     SOVERSION 27
                     VERSION 27.1.4)

However under Cygwin it would create:

    bin/cygneon-27.1.4.dll

Which contradicts Cygwin (and MinGW) naming conventions.
It is also does not allow applications upgrade to newer backward
compatible dll version as it expected to be done.

Artyom
cygwin, soversion
related to 0010122closed Brad King Patches for Cygwin 
Issue History
2010-01-31 09:50ArtyomNew Issue
2010-01-31 09:57ArtyomTag Attached: cygwin
2010-01-31 09:57ArtyomTag Attached: soversion
2010-02-01 09:55Bill HoffmanStatusnew => assigned
2010-02-01 09:55Bill HoffmanAssigned To => Brad King
2010-02-01 10:04Brad KingRelationship addedrelated to 0010122
2010-02-01 10:05Brad KingNote Added: 0019394
2010-02-01 10:06Brad KingNote Added: 0019395
2010-02-01 10:06Brad KingStatusassigned => closed
2010-02-01 10:06Brad KingResolutionopen => fixed

Notes
(0019394)
Brad King   
2010-02-01 10:05   
This was recently addressed in CMake from CVS HEAD:

http://www.cmake.org/Bug/view.php?id=10122#c19117 [^]

Name Cygwin DLLs with SOVERSION, not VERSION
/cvsroot/CMake/CMake/Source/cmTarget.cxx,v <-- Source/cmTarget.cxx
new revision: 1.286; previous revision: 1.285
(0019395)
Brad King   
2010-02-01 10:06   
This fix was also placed on the CMake-2-8 branch in preparation of 2.8.1-rc1.