#152 Remove abi_revision handling
Merged 2 years ago by nikic. Opened 2 years ago by nikic.
rpms/ nikic/llvm remove-abi-revision  into  rawhide

@@ -1,75 +0,0 @@ 

- From 3dc5722d5c7673a879f2b4680369d3ac8b6b64b6 Mon Sep 17 00:00:00 2001

- From: Tom Stellard <tstellar@redhat.com>

- Date: Wed, 4 Aug 2021 14:05:38 -0700

- Subject: [PATCH] cmake: Allow shared libraries to customize the soname using

-  LLVM_ABI_REVISION

- 

- The LLVM_ABI_REVISION variable is intended to be used for release

- candidates which introduce an ABI change to a shared library.  This

- variable can be specified per library, so there is not one global value

- for all of LLVM.

- 

- For example, if we LLVM X.0.0-rc2 introduces an ABI change for a library

- compared with LLVM X.0.0-rc1, then the LLVM_ABI_REVISION number for

- library will be incremented by 1.

- 

- In the main branch, LLVM_ABI_REVISION should always be 0, it is only

- meant to be used in the release branch.

- 

- Differential Revision: https://reviews.llvm.org/D105594

- ---

-  llvm/cmake/modules/AddLLVM.cmake       | 7 +++++--

-  llvm/tools/llvm-shlib/CMakeLists.txt   | 9 +++++++++

-  3 files changed, 19 insertions(+), 2 deletions(-)

- 

- diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake

- index 3e009f5061d3..a09405a1be3e 100644

- --- a/llvm/cmake/modules/AddLLVM.cmake

- +++ b/llvm/cmake/modules/AddLLVM.cmake

- @@ -586,11 +586,14 @@ function(llvm_add_library name)

-      # Set SOVERSION on shared libraries that lack explicit SONAME

-      # specifier, on *nix systems that are not Darwin.

-      if(UNIX AND NOT APPLE AND NOT ARG_SONAME)

- +      if (NOT LLVM_ABI_REVISION)

- +        set(LLVM_ABI_REVISION 0)

- +      endif()

-        set_target_properties(${name}

-          PROPERTIES

-          # Since 4.0.0, the ABI version is indicated by the major version

- -        SOVERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}

- -        VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX})

- +	SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_ABI_REVISION}

- +	VERSION ${LLVM_VERSION_MAJOR}.${LLVM_ABI_REVISION})

-      endif()

-    endif()

-  

- diff --git a/llvm/tools/llvm-shlib/CMakeLists.txt b/llvm/tools/llvm-shlib/CMakeLists.txt

- index 76b9a25cbbcd..b876e7fed6b5 100644

- --- a/llvm/tools/llvm-shlib/CMakeLists.txt

- +++ b/llvm/tools/llvm-shlib/CMakeLists.txt

- @@ -2,6 +2,11 @@

-  # library is enabled by setting LLVM_BUILD_LLVM_DYLIB=yes on the CMake

-  # commandline. By default the shared library only exports the LLVM C API.

-  

- +# In the main branch, LLVM_ABI_REVISION should always be 0.  In the release

- +# branches, this should be incremented before each release candidate every

- +# time the ABI of libLLVM.so changes.

- +set(LLVM_ABI_REVISION 0 CACHE STRING "ABI Revision number for SONAMEs (default: 0)")

- +

-  set(SOURCES

-    libllvm.cpp

-    )

- @@ -67,6 +72,10 @@ if(LLVM_BUILD_LLVM_DYLIB)

-      set_property(TARGET LLVM APPEND_STRING PROPERTY

-                  LINK_FLAGS

-                  " -compatibility_version 1 -current_version ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")

- +  else()

- +    set_target_properties(LLVM

- +      PROPERTIES

- +      SOVERSION ${LLVM_ABI_REVISION})

-    endif()

-  

-    if(TARGET libLLVMExports)

- -- 

- 2.27.0

- 

file modified
-9
@@ -17,9 +17,6 @@ 

  %global maj_ver 15

  %global min_ver 0

  %global patch_ver 0

- %if !%{maj_ver} && 0%{?rc_ver}

- %global abi_revision 2

- %endif

  %global llvm_srcdir llvm-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src

  %global cmake_srcdir cmake-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src

  
@@ -88,9 +85,6 @@ 

  Source6:	lit.fedora.cfg.py

  %endif

  

- %if 0%{?abi_revision}

- Patch0:		0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch

- %endif

  Patch1:		0002-Disable-CrashRecoveryTest.DumpStackCleanup-test-on-a.patch

  Patch2:		0003-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch

  
@@ -299,8 +293,6 @@ 

  	-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \

  	-DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \

  	-DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \

- 	%{?abi_revision:-DLLVM_ABI_REVISION=%{abi_revision}} \

- 	\

  	-DLLVM_DEFAULT_TARGET_TRIPLE=%{llvm_triple} \

  	-DSPHINX_WARNINGS_AS_ERRORS=OFF \

  	-DCMAKE_INSTALL_PREFIX=%{install_prefix} \
@@ -496,7 +488,6 @@ 

  %{_libdir}/bfd-plugins/LLVMgold.so

  %endif

  %{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so

- %{_libdir}/libLLVM-%{maj_ver}.so%{?abi_revision:.%{abi_revision}}

  %{_libdir}/libLTO.so*

  %else

  %config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf

We now longer ship RCs outside of copr, so this is no needed anymore.

Build succeeded.

We're not in need of that patch anymore (no abi break scheduled :-)) but more importantly this one never landed upstream, see https://reviews.llvm.org/D105594

So I think it's safe to remove it, we'll add that again if needs be. cc @tstellar for the record.

rebased onto 0c4aa4a

2 years ago

Pull-Request has been merged by nikic

2 years ago

Build succeeded.