diff --git a/programming/build/llvm/files/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch b/programming/build/llvm/files/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch new file mode 100644 index 0000000000..1866a66171 --- /dev/null +++ b/programming/build/llvm/files/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch @@ -0,0 +1,33 @@ +From 9320ffeda3915c8f7be744c983a3470a89107bd7 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 14 Sep 2021 20:21:20 -0700 +Subject: [PATCH] XFAIL missing-abstract-variable.ll test on ppc64le + +It's seems the strategy with this test is to XFAIL it on all +architectures that it fails on. I wonder if we should be passing +it a specific triple? Also, from what I can tell, this tests only +runs when llvm is configured with LLVM_DEFAULT_TARGET_TRIPLE set +to a non-empty value, which is why it may not fail in every build +configuration. + +Differential Revision: https://reviews.llvm.org/D109806 +--- + llvm/test/DebugInfo/Generic/missing-abstract-variable.ll | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll b/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll +index bd0de60268b6..cc5d56b0c512 100644 +--- a/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll ++++ b/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll +@@ -4,7 +4,7 @@ + ; powerpc64 (and on x86_64 at at least -O2). Presumably this is a SelectionDAG + ; issue. + ; FIXME: arm64 is an alias for aarch64 on macs, apparently? +-; XFAIL: powerpc64, aarch64, arm64, hexagon ++; XFAIL: powerpc64, aarch64, arm64, hexagon, ppc64le + + ; Build from the following source with clang -O2. + +-- +2.31.1 + diff --git a/programming/build/llvm/files/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch b/programming/build/llvm/files/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch new file mode 100644 index 0000000000..82a00f2ad1 --- /dev/null +++ b/programming/build/llvm/files/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch @@ -0,0 +1,75 @@ +From 3dc5722d5c7673a879f2b4680369d3ac8b6b64b6 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +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 + diff --git a/programming/build/llvm/pspec.xml b/programming/build/llvm/pspec.xml index a8cd34bd9d..cb7db7d015 100755 --- a/programming/build/llvm/pspec.xml +++ b/programming/build/llvm/pspec.xml @@ -36,9 +36,8 @@ support-linking-ScopPassManager-against-LLVM-dylib.patch --> - + 0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch + 0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch @@ -331,6 +330,13 @@ + + 2021-11-09 + 13.0.0 + Rebuild. + Mustafa Cinasal + muscnsl@gmail.com + 2021-10-22 13.0.0