Skip to content

Commit d07c8b8

Browse files
committed
[cmake] Add minor version to library SONAME
We need to do this now that we are bumping the minor release number when we create the release branch. This also results in a slight change to the library names for LLVM. The main library now has a more convential library name: 'libLLVM.so.$major.$minor'. The old library name: libLLVM-$major.so is now a symlink that points to the new library. However, the symlink is not present in the build directory. It is only present in the install directory. The library name was changed because it helped to keep the CMake changes more simple. Fixes llvm#76273
1 parent 380ac53 commit d07c8b8

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

llvm/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ endif()
3535

3636
if(NOT DEFINED LLVM_SHLIB_SYMBOL_VERSION)
3737
# "Symbol version prefix for libLLVM.so"
38-
set(LLVM_SHLIB_SYMBOL_VERSION "LLVM_${LLVM_VERSION_MAJOR}")
38+
set(LLVM_SHLIB_SYMBOL_VERSION "LLVM_${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}")
3939
endif()
4040

4141
if ((CMAKE_GENERATOR MATCHES "Visual Studio") AND (MSVC_TOOLSET_VERSION LESS 142) AND (CMAKE_GENERATOR_TOOLSET STREQUAL ""))

llvm/cmake/modules/AddLLVM.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ function(add_llvm_symbol_exports target_name export_file)
108108
COMMAND "${Python3_EXECUTABLE}" "-c"
109109
"import sys; \
110110
lines = [' ' + l.rstrip() for l in sys.stdin] + [' local: *;']; \
111-
print('LLVM_${LLVM_VERSION_MAJOR} {'); \
111+
print('LLVM_${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR} {'); \
112112
print(' global:') if len(lines) > 1 else None; \
113113
print(';\\n'.join(lines) + '\\n};')"
114114
< ${export_file} > ${native_export_file}
@@ -647,8 +647,8 @@ function(llvm_add_library name)
647647
set_target_properties(${name}
648648
PROPERTIES
649649
# Since 4.0.0, the ABI version is indicated by the major version
650-
SOVERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}
651-
VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX})
650+
SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}
651+
VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX})
652652
endif()
653653
endif()
654654

llvm/tools/llvm-shlib/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ if(LLVM_BUILD_LLVM_DYLIB)
3333
if (LLVM_LINK_LLVM_DYLIB)
3434
set(INSTALL_WITH_TOOLCHAIN INSTALL_WITH_TOOLCHAIN)
3535
endif()
36-
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
36+
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB OUTPUT_NAME LLVM ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
37+
# Add symlink for backwards compatibility with old library name
38+
get_target_property(LLVM_DYLIB_FILENAME LLVM OUTPUT_NAME)
39+
llvm_install_library_symlink(LLVM-${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX} ${LLVM_DYLIB_FILENAME} SHARED COMPONENT LLVM)
3740

3841
list(REMOVE_DUPLICATES LIB_NAMES)
3942
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")

0 commit comments

Comments
 (0)