Merge branch '15' into 16

This commit is contained in:
Gianfranco Costamagna 2023-06-24 20:42:03 +02:00
commit 5a7cbf2929
6 changed files with 247 additions and 54 deletions

72
debian/changelog vendored
View File

@ -213,7 +213,40 @@ llvm-toolchain-snapshot (1:16~++20220731055325+02b3a358926e-1~exp1) experimental
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Jul 2022 21:36:27 +0200
llvm-toolchain-15 (1:15.0.7-4) UNRELEASED; urgency=medium
llvm-toolchain-15 (1:15.0.7-5) unstable; urgency=medium
[ Graham Inggs ]
* debian/patches/ubuntu-releases.patch: Update the list of
Ubuntu release names
[ Gianfranco Costamagna ]
* Add powerpc to GOLD architectures
* Cherry-pick upstream fix for newer cmake-related build failure
* Cherry-pick upstream fix for HIP search path depending on os-release (Closes: #1037452)
[ Steve Langasek ]
* debian/rules: disable -Wl,-Bsymbolic-functions for libomp. LP: #2016471.
-- Gianfranco Costamagna <locutusofborg@debian.org> Sat, 24 Jun 2023 20:04:59 +0200
llvm-toolchain-15 (1:15.0.7-5~exp2) experimental; urgency=medium
* Also apply the workround of issue #62621 for focal
and to include libpolly-15-dev
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 10 Jun 2023 11:52:14 +0200
llvm-toolchain-15 (1:15.0.7-5~exp1) experimental; urgency=medium
* Remove old code to manage Debian stretch
* Force the replacement of new Ubuntu packages introduced in
https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-15/+bug/2008755
* Adjust LIBCXXABI_ARM_EHABI => _LIBCXXABI_ARM_EHABI
Issue: https://github.com/llvm/llvm-project/issues/59240
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 04 Jun 2023 11:35:54 +0200
llvm-toolchain-15 (1:15.0.7-4) unstable; urgency=medium
* Fix debian/libclang1-15.symbols soname
* Remove build artifacts if any
@ -228,12 +261,6 @@ llvm-toolchain-15 (1:15.0.7-3) unstable; urgency=medium
llvm-toolchain-15 (1:15.0.7-2) unstable; urgency=medium
* Adjust some lintian overrides
* Disable flang on s390x. Seems that it is breaking
[ Gianfranco Costamagna ]
* Update print lldb python patch, following what was done
in automake for newer python
[ Sylvestre Ledru ]
* Yeah, we would like to have this version in bookworm
(Closes: #1032316)
@ -243,31 +270,6 @@ llvm-toolchain-15 (1:15.0.7-2) unstable; urgency=medium
[ Gianfranco Costamagna ]
* Update print lldb python patch, following what was done
in automake for newer python
[ Sylvestre Ledru ]
* Yeah, we would like to have this version in bookworm
(Closes: #1032316)
* Adjust some lintian overrides
* Disable flang on s390x. Seems that it is breaking
[ Gianfranco Costamagna ]
* Update print lldb python patch, following what was done
in automake for newer python
[ Samuel Thibault ]
* Fix disabling amdgpu on non-Linux.
[ John Paul Adrian Glaubitz ]
* Don't run chrpath for libclang on powerpc and powerpcspe
[ Faidon Liambotis ]
* Update the wasm-sysroot-usr.diff patch to restore functionality that was
accidentally dropped when the patch was forward-ported from 14 to 15. This
resolves an issue in which clang++ builds would fail if libc++-15-dev was
installed alongside libc++-15-dev-wasm32. (Closes: #1029010, #1032317)
[ Cordell Bloor ]
* Backport support for HIP in /usr and add Debian paths
for rocm-device-libs to search list (Closes: #1031808)
[ Samuel Thibault ]
* Fix disabling amdgpu on non-Linux.
@ -404,10 +406,8 @@ llvm-toolchain-15 (1:15.0.5-1) unstable; urgency=medium
* New upstream release
* Remove the swig patches (applied upstream)
* experimental New snapshot release
* experimental New snapshot release
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 16 Nov 2022 09:02:30 +0100
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 16 Nov 2022 09:11:01 +0100
llvm-toolchain-15 (1:15.0.4-1) unstable; urgency=medium
@ -550,7 +550,7 @@ llvm-toolchain-15 (1:15.0.0-1~exp1) experimental; urgency=medium
llvm-toolchain-15 (1:15.0.0~+rc3-1~exp2) experimental; urgency=medium
* Update of the build dep from llvm-spirv => llvm-spirv-14
as it is now versionned. It should build libclc
as it is now versioned. It should build libclc
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 31 Aug 2022 17:10:33 +0200

View File

@ -0,0 +1,45 @@
From f8598357662dc8dd0f4400bcaeb48e8befe43ecc Mon Sep 17 00:00:00 2001
From: Cordell Bloor <Cordell.Bloor@amd.com>
Date: Tue, 9 May 2023 09:46:48 -0400
Subject: [PATCH] [HIP] Detect HIP for Ubuntu, Mint, Gentoo, etc.
HIP may be installed into /usr or /usr/local on a variety of Linux
operating systems. It may become unwieldy to list them all.
Reviewed by: Siu Chi Chan, Yaxun Liu
Differential Revision: https://reviews.llvm.org/D149110
---
clang/lib/Driver/ToolChains/AMDGPU.cpp | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index acedcfabefe1c..1eb22ed8704c9 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -10,7 +10,6 @@
#include "CommonArgs.h"
#include "clang/Basic/TargetID.h"
#include "clang/Driver/Compilation.h"
-#include "clang/Driver/Distro.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/InputInfo.h"
#include "clang/Driver/Options.h"
@@ -309,13 +308,10 @@ RocmInstallationDetector::getInstallationPathCandidates() {
ROCmSearchDirs.emplace_back(D.SysRoot + "/opt/" + LatestROCm,
/*StrictChecking=*/true);
- Distro Dist(D.getVFS(), llvm::Triple(llvm::sys::getProcessTriple()));
- if (Dist.IsDebian() || Dist.IsRedhat()) {
- ROCmSearchDirs.emplace_back(D.SysRoot + "/usr/local",
- /*StrictChecking=*/true);
- ROCmSearchDirs.emplace_back(D.SysRoot + "/usr",
- /*StrictChecking=*/true);
- }
+ ROCmSearchDirs.emplace_back(D.SysRoot + "/usr/local",
+ /*StrictChecking=*/true);
+ ROCmSearchDirs.emplace_back(D.SysRoot + "/usr",
+ /*StrictChecking=*/true);
DoPrintROCmSearchDirs();
return ROCmSearchDirs;

View File

@ -16,7 +16,7 @@ Index: llvm-toolchain-snapshot_16~++20220920091612+a7d2409bac7f/libcxxabi/src/cx
#ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
-#else
+#elif !LIBCXXABI_ARM_EHABI
+#elif !_LIBCXXABI_ARM_EHABI
_Unwind_RaiseException(&exception_header->unwindHeader);
+#else
+ _Unwind_RaiseException(exception_header->unwindHeader);
@ -34,7 +34,7 @@ Index: llvm-toolchain-snapshot_16~++20220920091612+a7d2409bac7f/libcxxabi/src/cx
// to touch a foreign exception in any way, that is undefined
// behavior. They likely can't since the only way to catch
// a foreign exception is with catch (...)!
+#if !LIBCXXABI_ARM_EHABI
+#if !_LIBCXXABI_ARM_EHABI
_Unwind_DeleteException(&globals->caughtExceptions->unwindHeader);
+#else
+ _Unwind_DeleteException(globals->caughtExceptions->unwindHeader);
@ -47,7 +47,7 @@ Index: llvm-toolchain-snapshot_16~++20220920091612+a7d2409bac7f/libcxxabi/src/cx
#ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
-#else
+#elif !LIBCXXABI_ARM_EHABI
+#elif !_LIBCXXABI_ARM_EHABI
_Unwind_RaiseException(&exception_header->unwindHeader);
+#else
+ _Unwind_RaiseException(exception_header->unwindHeader);
@ -58,7 +58,7 @@ Index: llvm-toolchain-snapshot_16~++20220920091612+a7d2409bac7f/libcxxabi/src/cx
dep_exception_header->unwindHeader.exception_cleanup = dependent_exception_cleanup;
#ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&dep_exception_header->unwindHeader);
+#elif !LIBCXXABI_ARM_EHABI
+#elif !_LIBCXXABI_ARM_EHABI
+ _Unwind_RaiseException(&dep_exception_header->unwindHeader);
#else
- _Unwind_RaiseException(&dep_exception_header->unwindHeader);
@ -74,7 +74,7 @@ Index: llvm-toolchain-snapshot_16~++20220920091612+a7d2409bac7f/libcxxabi/src/cx
_LIBCXXABI_HIDDEN void __setExceptionClass ( _Unwind_Exception*, uint64_t);
_LIBCXXABI_HIDDEN bool __isOurExceptionClass(const _Unwind_Exception*);
+#if LIBCXXABI_ARM_EHABI
+#if _LIBCXXABI_ARM_EHABI
+// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h)
+#if defined(__clang__)
+struct _Unwind_Control_Block

148
debian/patches/new-cmake-build-fix.patch vendored Normal file
View File

@ -0,0 +1,148 @@
From 61967bbc7d4e9f72fb1fa082fa2235b99e36b698 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov@redhat.com>
Date: Thu, 20 Apr 2023 14:59:27 +0200
Subject: [PATCH] [OpenMP] Replace libomp_check_linker_flag with
llvm_check_compiler_linker_flag
Replace the custom libomp_check_linker_flag() implementation with
llvm_check_compiler_linker_flag() from the common cmake utils. Due
to the way the custom implementation is implemented (capturing
output from an entire nested cmake invocation) it can easily end
up incorrectly detecting flags as unavailable, e.g. because "error",
"unknown" or similar occurs inside compiler flags, the directory
name, etc.
Fixes https://github.com/llvm/llvm-project/issues/62240.
Differential Revision: https://reviews.llvm.org/D148798
---
.../runtime/cmake/LibompCheckLinkerFlag.cmake | 72 -------------------
openmp/runtime/cmake/config-ix.cmake | 18 ++---
2 files changed, 9 insertions(+), 81 deletions(-)
delete mode 100644 openmp/runtime/cmake/LibompCheckLinkerFlag.cmake
diff --git a/openmp/runtime/cmake/LibompCheckLinkerFlag.cmake b/openmp/runtime/cmake/LibompCheckLinkerFlag.cmake
deleted file mode 100644
index bcc0ca80c866e..0000000000000
--- a/openmp/runtime/cmake/LibompCheckLinkerFlag.cmake
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-#//===----------------------------------------------------------------------===//
-#//
-#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-#// See https://llvm.org/LICENSE.txt for license information.
-#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#//
-#//===----------------------------------------------------------------------===//
-#
-
-include(GNUInstallDirs)
-
-# Checking a linker flag to build a shared library
-# There is no real trivial way to do this in CMake, so we implement it here
-# this will have ${boolean} = TRUE if the flag succeeds, otherwise FALSE.
-function(libomp_check_linker_flag flag boolean)
- if(NOT DEFINED "${boolean}")
- set(retval TRUE)
- set(library_source
- "int foo(int a) { return a*a; }")
- set(cmake_source
- "cmake_minimum_required(VERSION 3.13.4)
- project(foo C)
- set(CMAKE_SHARED_LINKER_FLAGS \"${flag}\")
- add_library(foo SHARED src_to_link.c)")
- # Compiling as a part of runtimes introduces ARCH-unknown-linux-gnu as a part
- # of a working directory. So adding a guard for unknown.
- set(failed_regexes "[Ee]rror;[Uu]nknown[^-];[Ss]kipping;LINK : warning;Unsupported command line")
- set(base_dir ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/link_flag_check_${boolean})
- file(MAKE_DIRECTORY ${base_dir})
- file(MAKE_DIRECTORY ${base_dir}/build)
- file(WRITE ${base_dir}/src_to_link.c "${library_source}")
- file(WRITE ${base_dir}/CMakeLists.txt "${cmake_source}")
-
- message(STATUS "Performing Test ${boolean}")
- try_compile(
- try_compile_result
- ${base_dir}/build
- ${base_dir}
- foo
- OUTPUT_VARIABLE OUTPUT)
-
- if(try_compile_result)
- foreach(regex IN LISTS failed_regexes)
- # Ignore the warning about the newer or unknown CUDA version.
- if(("${OUTPUT}" MATCHES ${regex}) AND NOT ("${OUTPUT}" MATCHES "Unknown CUDA version"))
- set(retval FALSE)
- endif()
- endforeach()
- else()
- set(retval FALSE)
- endif()
-
- if(${retval})
- set(${boolean} 1 CACHE INTERNAL "Test ${boolean}")
- message(STATUS "Performing Test ${boolean} - Success")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing C Linker Flag test ${boolean} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${library_source}\n")
- else()
- set(${boolean} "" CACHE INTERNAL "Test ${boolean}")
- message(STATUS "Performing Test ${boolean} - Failed")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing C Linker Flag test ${boolean} failed with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${library_source}\n")
- endif()
-
- set(${boolean} ${retval} PARENT_SCOPE)
- endif()
-endfunction()
diff --git a/openmp/runtime/cmake/config-ix.cmake b/openmp/runtime/cmake/config-ix.cmake
index d0eda6d8ca39a..ca3cb43c285db 100644
--- a/openmp/runtime/cmake/config-ix.cmake
+++ b/openmp/runtime/cmake/config-ix.cmake
@@ -16,8 +16,8 @@ include(CheckIncludeFile)
include(CheckLibraryExists)
include(CheckIncludeFiles)
include(CheckSymbolExists)
-include(LibompCheckLinkerFlag)
include(LibompCheckFortranFlag)
+include(LLVMCheckCompilerLinkerFlag)
# Check for versioned symbols
function(libomp_check_version_symbols retval)
@@ -128,14 +128,14 @@ check_symbol_exists(_aligned_malloc "mal
# Check linker flags
if(WIN32)
- libomp_check_linker_flag(/SAFESEH LIBOMP_HAVE_SAFESEH_FLAG)
+ llvm_check_compiler_linker_flag(/SAFESEH LIBOMP_HAVE_SAFESEH_FLAG)
elseif(NOT APPLE)
- libomp_check_linker_flag(-Wl,-x LIBOMP_HAVE_X_FLAG)
- libomp_check_linker_flag(-Wl,--warn-shared-textrel LIBOMP_HAVE_WARN_SHARED_TEXTREL_FLAG)
- libomp_check_linker_flag(-Wl,--as-needed LIBOMP_HAVE_AS_NEEDED_FLAG)
- libomp_check_linker_flag("-Wl,--version-script=${LIBOMP_SRC_DIR}/exports_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
- libomp_check_linker_flag(-static-libgcc LIBOMP_HAVE_STATIC_LIBGCC_FLAG)
- libomp_check_linker_flag(-Wl,-z,noexecstack LIBOMP_HAVE_Z_NOEXECSTACK_FLAG)
+ llvm_check_compiler_linker_flag(C -Wl,-x LIBOMP_HAVE_X_FLAG)
+ llvm_check_compiler_linker_flag(C -Wl,--warn-shared-textrel LIBOMP_HAVE_WARN_SHARED_TEXTREL_FLAG)
+ llvm_check_compiler_linker_flag(C -Wl,--as-needed LIBOMP_HAVE_AS_NEEDED_FLAG)
+ llvm_check_compiler_linker_flag(C "-Wl,--version-script=${LIBOMP_SRC_DIR}/exports_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
+ llvm_check_compiler_linker_flag(C -static-libgcc LIBOMP_HAVE_STATIC_LIBGCC_FLAG)
+ llvm_check_compiler_linker_flag(C -Wl,-z,noexecstack LIBOMP_HAVE_Z_NOEXECSTACK_FLAG)
endif()
# Check Intel(R) C Compiler specific flags
@@ -146,8 +146,8 @@ if(CMAKE_C_COMPILER_ID STREQUAL "Intel" OR CMAKE_C_COMPILER_ID STREQUAL "IntelLL
check_cxx_compiler_flag(-Qoption,cpp,--extended_float_types LIBOMP_HAVE_EXTENDED_FLOAT_TYPES_FLAG)
check_cxx_compiler_flag(-falign-stack=maintain-16-byte LIBOMP_HAVE_FALIGN_STACK_FLAG)
check_cxx_compiler_flag("-opt-streaming-stores never" LIBOMP_HAVE_OPT_STREAMING_STORES_FLAG)
- libomp_check_linker_flag(-static-intel LIBOMP_HAVE_STATIC_INTEL_FLAG)
- libomp_check_linker_flag(-no-intel-extensions LIBOMP_HAVE_NO_INTEL_EXTENSIONS_FLAG)
+ llvm_check_compiler_linker_flag(C -static-intel LIBOMP_HAVE_STATIC_INTEL_FLAG)
+ llvm_check_compiler_linker_flag(C -no-intel-extensions LIBOMP_HAVE_NO_INTEL_EXTENSIONS_FLAG)
check_library_exists(irc_pic _intel_fast_memcpy "" LIBOMP_HAVE_IRC_PIC_LIBRARY)
endif()

View File

@ -150,5 +150,6 @@ bolt-disable-emit-relocs.patch
link-grpc.diff
amdgpu/nonlinux.patch
#amdgpu/bitcode-multiarch.patch
ubuntu-releases.patch
new-cmake-build-fix.patch
HIP-search-path-fix.patch

23
debian/rules vendored
View File

@ -147,15 +147,8 @@ endif
endif
endif
ifeq ($(USE_CLANG_PACKAGE_TO_BUILD_ITSELF),yes)
# For Debian stretch, gcc isn't available, let's use clang
# itself to build itself.
export CC=clang-14
export CXX=clang++-14
else
export CC=gcc-$(GCC_VERSION)
export CXX=g++-$(GCC_VERSION)
endif
ifneq (,$(findstring $(DEB_HOST_ARCH),armel))
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabi
@ -188,7 +181,8 @@ ifneq (,$(filter $(DEB_HOST_ARCH),i386))
CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=i386-linux-gnu
endif
# https://bugs.launchpad.net/bugs/2016471
STAGE_2_CMAKE_EXTRA += -DLIBOMP_LDFLAGS=-Wl,-Bno-symbolic
ifneq (,$(filter $(DEB_HOST_ARCH),mips64el))
# avoid an issue with search path on mips64el
@ -545,6 +539,15 @@ preconfigure:
fi; \
fi
# workaround the breaks/replaces/conflicts
# https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-15/+bug/2008755
# Yeah, this is ugly but I don't know how to do better
if test "$(DISTRO)" = "jammy" -o "$(DISTRO)" = "kinetic" -o "$(DISTRO)" = "focal"; then \
if test "$(LLVM_VERSION)" = "15"; then \
sed -i -e "s|libclang-common-15-dev (<< 1:15.0.6-5)|libclang-common-15-dev (<< 1:15.0.6-5), libclang-common-15-dev (= 1:15.0.7-0ubuntu0.22.04.1), libpolly-15-dev (= 1:15.0.7-0ubuntu0.22.04.1)|g" debian/control; \
fi; \
fi
ifdef LLVM_SPIRV
# llvm-spirv was found, so we can enable *.spv files. Debian
# buster and Ubuntu 18.04 don't have llvm-spirv to create the
@ -558,10 +561,6 @@ endif
echo "" > debian/libc++abi-$(LLVM_VERSION)-dev-wasm32.install; \
fi
if test "$(DISTRO)" = "buster"; then \
echo "" > debian/python3-lldb-$(LLVM_VERSION).install; \
fi
# Conditionally enable install clangd grpc files
if test "$(CLANGD_GRPC_INSTALLED)" = "yes"; then \
sed -i -e "s|#grpc\ ||g" debian/libclang-$(LLVM_VERSION)-dev.install; \