From 443f08468cb7d3b059e563067c8604e59704be92 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Tue, 12 Sep 2023 09:06:48 +0200 Subject: [PATCH 1/4] Refresh D158066 patch --- debian/patches/D158066.patch | 125 ++++++++++++++++++++++++++++++----- 1 file changed, 108 insertions(+), 17 deletions(-) diff --git a/debian/patches/D158066.patch b/debian/patches/D158066.patch index 99989d00..7f615de4 100644 --- a/debian/patches/D158066.patch +++ b/debian/patches/D158066.patch @@ -17,10 +17,23 @@ Index: llvm-toolchain-16-16.0.6/clang/include/clang/Basic/BuiltinsPPC.def BUILTIN(__builtin_ppc_insert_exp, "ddULLi", "") BUILTIN(__builtin_ppc_fmsub, "dddd", "") BUILTIN(__builtin_ppc_fmsubs, "ffff", "") -Index: llvm-toolchain-16-16.0.6/clang/lib/CodeGen/CGBuiltin.cpp -=================================================================== ---- llvm-toolchain-16-16.0.6.orig/clang/lib/CodeGen/CGBuiltin.cpp -+++ llvm-toolchain-16-16.0.6/clang/lib/CodeGen/CGBuiltin.cpp +diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp +--- a/clang/lib/Basic/Targets/PPC.cpp ++++ b/clang/lib/Basic/Targets/PPC.cpp +@@ -260,6 +260,10 @@ + Builder.defineMacro("__builtin_minfe", "__builtin_ppc_minfe"); + Builder.defineMacro("__builtin_minfl", "__builtin_ppc_minfl"); + Builder.defineMacro("__builtin_minfs", "__builtin_ppc_minfs"); ++ Builder.defineMacro("__builtin_mffs", "__builtin_ppc_mffs"); ++ Builder.defineMacro("__builtin_mffsl", "__builtin_ppc_mffsl"); ++ Builder.defineMacro("__builtin_mtfsf", "__builtin_ppc_mtfsf"); ++ Builder.defineMacro("__builtin_set_fpscr_rn", "__builtin_ppc_set_fpscr_rn"); + } + + /// PPCTargetInfo::getTargetDefines - Return a set of the PowerPC-specific +diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp +--- a/clang/lib/CodeGen/CGBuiltin.cpp ++++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -16742,6 +16742,11 @@ Value *Op1 = EmitScalarExpr(E->getArg(1)); return Builder.CreateFDiv(Op0, Op1, "swdiv"); @@ -33,10 +46,9 @@ Index: llvm-toolchain-16-16.0.6/clang/lib/CodeGen/CGBuiltin.cpp } } -Index: llvm-toolchain-16-16.0.6/clang/lib/Headers/ppc_wrappers/smmintrin.h -=================================================================== ---- llvm-toolchain-16-16.0.6.orig/clang/lib/Headers/ppc_wrappers/smmintrin.h -+++ llvm-toolchain-16-16.0.6/clang/lib/Headers/ppc_wrappers/smmintrin.h +diff --git a/clang/lib/Headers/ppc_wrappers/smmintrin.h b/clang/lib/Headers/ppc_wrappers/smmintrin.h +--- a/clang/lib/Headers/ppc_wrappers/smmintrin.h ++++ b/clang/lib/Headers/ppc_wrappers/smmintrin.h @@ -14,7 +14,7 @@ #ifndef NO_WARN_X86_INTRINSICS @@ -160,10 +172,9 @@ Index: llvm-toolchain-16-16.0.6/clang/lib/Headers/ppc_wrappers/smmintrin.h } return (__m128)__r; } -Index: llvm-toolchain-16-16.0.6/clang/test/CodeGen/PowerPC/builtins-ppc.c -=================================================================== ---- llvm-toolchain-16-16.0.6.orig/clang/test/CodeGen/PowerPC/builtins-ppc.c -+++ llvm-toolchain-16-16.0.6/clang/test/CodeGen/PowerPC/builtins-ppc.c +diff --git a/clang/test/CodeGen/PowerPC/builtins-ppc.c b/clang/test/CodeGen/PowerPC/builtins-ppc.c +--- a/clang/test/CodeGen/PowerPC/builtins-ppc.c ++++ b/clang/test/CodeGen/PowerPC/builtins-ppc.c @@ -1,5 +1,8 @@ // REQUIRES: powerpc-registered-target -// RUN: %clang_cc1 -triple powerpc-unknown-unknown -emit-llvm %s -o - | FileCheck %s @@ -196,11 +207,65 @@ Index: llvm-toolchain-16-16.0.6/clang/test/CodeGen/PowerPC/builtins-ppc.c res = __builtin_setflm(res); } -Index: llvm-toolchain-16-16.0.6/clang/test/CodeGen/PowerPC/ppc-smmintrin.c -=================================================================== ---- llvm-toolchain-16-16.0.6.orig/clang/test/CodeGen/PowerPC/ppc-smmintrin.c -+++ llvm-toolchain-16-16.0.6/clang/test/CodeGen/PowerPC/ppc-smmintrin.c -@@ -239,44 +239,48 @@ +diff --git a/clang/test/CodeGen/PowerPC/ppc-emmintrin.c b/clang/test/CodeGen/PowerPC/ppc-emmintrin.c +--- a/clang/test/CodeGen/PowerPC/ppc-emmintrin.c ++++ b/clang/test/CodeGen/PowerPC/ppc-emmintrin.c +@@ -8,6 +8,11 @@ + // RUN: %clang -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr10 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -ffp-contract=off -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK-P10 + ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -ffp-contract=off -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr10 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -ffp-contract=off -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++ + // RUN: %clang -S -emit-llvm -target powerpc64-ibm-aix -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -ffp-contract=off -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-BE + // RUN: %clang -S -emit-llvm -target powerpc64-ibm-aix -mcpu=pwr10 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ +diff --git a/clang/test/CodeGen/PowerPC/ppc-mmintrin.c b/clang/test/CodeGen/PowerPC/ppc-mmintrin.c +--- a/clang/test/CodeGen/PowerPC/ppc-mmintrin.c ++++ b/clang/test/CodeGen/PowerPC/ppc-mmintrin.c +@@ -9,6 +9,11 @@ + // RUN: %clang -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr9 -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n| FileCheck %s --check-prefixes=CHECK-P9,CHECK,CHECK-LE + ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr9 -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++ + // RUN: %clang -S -emit-llvm -target powerpc64-unknown-freebsd13.0 -mcpu=pwr8 -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK-P8,CHECK,CHECK-BE + // RUN: %clang -S -emit-llvm -target powerpc64le-unknown-freebsd13.0 -mcpu=pwr8 -DNO_WARN_X86_INTRINSICS %s \ +diff --git a/clang/test/CodeGen/PowerPC/ppc-pmmintrin.c b/clang/test/CodeGen/PowerPC/ppc-pmmintrin.c +--- a/clang/test/CodeGen/PowerPC/ppc-pmmintrin.c ++++ b/clang/test/CodeGen/PowerPC/ppc-pmmintrin.c +@@ -13,6 +13,9 @@ + // RUN: %clang -S -emit-llvm -target powerpc64-ibm-aix -mcpu=pwr8 -DNO_MM_MALLOC -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s + ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-gnu-linux -mcpu=pwr8 -DNO_MM_MALLOC -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++ + #include + + __m128d resd, md1, md2; +diff --git a/clang/test/CodeGen/PowerPC/ppc-smmintrin.c b/clang/test/CodeGen/PowerPC/ppc-smmintrin.c +--- a/clang/test/CodeGen/PowerPC/ppc-smmintrin.c ++++ b/clang/test/CodeGen/PowerPC/ppc-smmintrin.c +@@ -15,6 +15,11 @@ + // RUN: %clang -S -emit-llvm -target powerpc64-unknown-linux-gnu -mcpu=pwr10 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s --check-prefix=P10 + ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr10 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++ + // RUN: %clang -S -emit-llvm -target powerpc64le-unknown-freebsd13.0 -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s + // RUN: %clang -S -emit-llvm -target powerpc64-unknown-freebsd13.0 -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ +@@ -239,44 +244,48 @@ // CHECK-LABEL: @test_round // CHECK-LABEL: define available_externally <4 x float> @_mm_round_ps(<4 x float> noundef %{{[0-9a-zA-Z_.]+}}, i32 noundef signext %{{[0-9a-zA-Z_.]+}}) @@ -263,3 +328,29 @@ Index: llvm-toolchain-16-16.0.6/clang/test/CodeGen/PowerPC/ppc-smmintrin.c // CHECK-LABEL: define available_externally <2 x double> @_mm_round_sd(<2 x double> noundef %{{[0-9a-zA-Z_.]+}}, <2 x double> noundef %{{[0-9a-zA-Z_.]+}}, i32 noundef signext %{{[0-9a-zA-Z_.]+}}) // CHECK: call <2 x double> @_mm_round_pd(<2 x double> noundef %{{[0-9a-zA-Z_.]+}}, i32 noundef signext %{{[0-9a-zA-Z_.]+}}) +diff --git a/clang/test/CodeGen/PowerPC/ppc-tmmintrin.c b/clang/test/CodeGen/PowerPC/ppc-tmmintrin.c +--- a/clang/test/CodeGen/PowerPC/ppc-tmmintrin.c ++++ b/clang/test/CodeGen/PowerPC/ppc-tmmintrin.c +@@ -13,6 +13,9 @@ + // RUN: %clang -S -emit-llvm -target powerpc64-ibm-aix -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s --check-prefixes=CHECK,CHECK-BE + ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-gnu-linux -mcpu=pwr8 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++ + #include + + __m64 res, m1, m2; +diff --git a/clang/test/CodeGen/PowerPC/ppc-x86gprintrin.c b/clang/test/CodeGen/PowerPC/ppc-x86gprintrin.c +--- a/clang/test/CodeGen/PowerPC/ppc-x86gprintrin.c ++++ b/clang/test/CodeGen/PowerPC/ppc-x86gprintrin.c +@@ -12,6 +12,9 @@ + // RUN: %clang -S -emit-llvm -target powerpc64-ibm-aix -mcpu=pwr7 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ + // RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -o - | llvm-cxxfilt -n | FileCheck %s + ++// RUN: %clang -x c++ -S -emit-llvm -target powerpc64le-unknown-linux-gnu -mcpu=pwr7 -ffreestanding -DNO_WARN_X86_INTRINSICS %s \ ++// RUN: -fno-discard-value-names -mllvm -disable-llvm-optzns -fsyntax-only ++ + #include + + unsigned short us; From 665dec9292b4a55531dae7cadd2258e557452ab6 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Tue, 12 Sep 2023 09:06:58 +0200 Subject: [PATCH 2/4] Add patch to hopefully fix mips64el build --- debian/patches/mips64el-ompt.patch | 10 ++++++++++ debian/patches/series | 1 + 2 files changed, 11 insertions(+) create mode 100644 debian/patches/mips64el-ompt.patch diff --git a/debian/patches/mips64el-ompt.patch b/debian/patches/mips64el-ompt.patch new file mode 100644 index 00000000..3e84a148 --- /dev/null +++ b/debian/patches/mips64el-ompt.patch @@ -0,0 +1,10 @@ +--- llvm-toolchain-16-16.0.6.orig/openmp/runtime/cmake/config-ix.cmake ++++ llvm-toolchain-16-16.0.6/openmp/runtime/cmake/config-ix.cmake +@@ -328,6 +329,7 @@ else() + (LIBOMP_ARCH STREQUAL aarch64) OR + (LIBOMP_ARCH STREQUAL aarch64_a64fx) OR + (LIBOMP_ARCH STREQUAL ppc64le) OR ++ (LIBOMP_ARCH STREQUAL mips64) OR + (LIBOMP_ARCH STREQUAL ppc64) OR + (LIBOMP_ARCH STREQUAL riscv64) OR + (LIBOMP_ARCH STREQUAL loongarch64)) diff --git a/debian/patches/series b/debian/patches/series index 6cbaed91..1f72d367 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -153,3 +153,4 @@ ubuntu-releases.patch new-cmake-build-fix.patch HIP-search-path-fix.patch D158066.patch +mips64el-ompt.patch From 63151625c2ac12f1d1b5705fbb2d48f227b4548d Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Tue, 12 Sep 2023 09:07:11 +0200 Subject: [PATCH 3/4] Drop mips64el hack --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 6cb1ab63..7d7c278f 100755 --- a/debian/rules +++ b/debian/rules @@ -1190,7 +1190,7 @@ endif # Disable the python binding for buster. not sure why it regressed # regressed de4364f1ecaa..0745b0c0354a - if test "$(DISTRO)" = "buster" -o "$(DISTRO)" = "bionic" -o "$(DEB_HOST_ARCH)" = "mips64el"; then \ + if test "$(DISTRO)" = "buster" -o "$(DISTRO)" = "bionic"; then \ mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/gdb/python/ompd/; \ touch $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/gdb/python/ompd/empty; \ echo "" > debian/python3-lldb-$(LLVM_VERSION).install; \ From 8746d3fe6e49442fa038d05dd1fec93296554a44 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Tue, 12 Sep 2023 09:07:17 +0200 Subject: [PATCH 4/4] Update changelog --- debian/changelog | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/debian/changelog b/debian/changelog index 4bd4dfed..b8a4ed44 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-16 (1:16.0.6-15) unstable; urgency=medium + + * Second attempt to refresh D158066.patch (Closes: #1049362) + * Second attempt to fix mips64el without loosing ompd + + -- Gianfranco Costamagna Mon, 11 Sep 2023 15:40:42 +0200 + llvm-toolchain-16 (1:16.0.6-14) unstable; urgency=medium [ Sylvestre Ledru ]