[cmake] Append LLVM_VERSION_SUFFIX to SOVERSION
authorMichal Gorny <mgorny@gentoo.org>
Wed, 8 Aug 2018 20:45:03 +0000 (20:45 +0000)
committerMichal Gorny <mgorny@gentoo.org>
Wed, 8 Aug 2018 20:45:03 +0000 (20:45 +0000)
Append LLVM_VERSION_SUFFIX to SOVERSION. This makes it possible
to use the suffix to differentiate binary-incompatible versions
of LLVM built via BUILD_SHARED_LIBS.

We are planning to use this to temporarily preserve ABI-incompatible
variants of LLVM while switching the system between them, e.g. when
rebuilding the system to use libc++. Normally this would mean that once
LLVM is rebuilt using libc++ all the reverse dependencies become
immediately broken. Using a distinct SOVERSION allows us to preserve
the ABI compatibility before all the packages are rebuilt.

Differential Revision: https://reviews.llvm.org/D39939

llvm-svn: 339286

llvm/cmake/modules/AddLLVM.cmake

index ce2057f..24ef5e4 100644 (file)
@@ -499,7 +499,7 @@ function(llvm_add_library name)
       set_target_properties(${name}
         PROPERTIES
         # Since 4.0.0, the ABI version is indicated by the major version
-        SOVERSION ${LLVM_VERSION_MAJOR}
+        SOVERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}
         VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX})
     endif()
   endif()