diff -urN a/llvm-toolchain-22-22.1.7/debian/changelog b/llvm-toolchain-22-22.1.7/debian/changelog --- a/llvm-toolchain-22-22.1.7/debian/changelog 2026-06-02 07:17:45.000000000 +0000 +++ b/llvm-toolchain-22-22.1.7/debian/changelog 2026-06-23 18:01:14.442202092 +0000 @@ -1,3 +1,22 @@ +llvm-toolchain-22 (1:22.1.7-1~deb13u1) trixie; urgency=medium + + * Non-maintainer upload. + * Rebuild for trixie. + * Change build-dep from sid's llvm-spirv-22 to trixie's llvm-spirv-19. + * Add s390x to g++-multilib build-dep. + * Set SKIP_COMMON_PACKAGES=yes in d/rules to skip building the + non-versioned library packages. Set the NEW_LLVM_VERSION to 19 (instead of + 23; not what the maintainers intended, but it works). + * Regenerate d/control, dropping libc++1, libc++abi1, llvm-libunwind1, and + libomp5 binary packages, and also adding build-deps on trixie's + libc++1-19, libc++abi1-19, libomp5-19, libunwind-19, and libllvm19. + * Add depends for the various -dev packages to those -19 shared lib + packages, but also note in package descriptions that dynamic linking is + unsupported. It *will* fail, as -22-dev headers include symbols that -19 + doesn't have. + + -- Andres Salomon Tue, 23 Jun 2026 03:24:19 +0000 + llvm-toolchain-22 (1:22.1.7-1) unstable; urgency=medium * experimental New snapshot release diff -urN a/llvm-toolchain-22-22.1.7/debian/control b/llvm-toolchain-22-22.1.7/debian/control --- a/llvm-toolchain-22-22.1.7/debian/control 2026-05-06 07:45:48.000000000 +0000 +++ b/llvm-toolchain-22-22.1.7/debian/control 2026-06-23 17:59:47.277425226 +0000 @@ -8,14 +8,14 @@ chrpath, texinfo, sharutils, libelf-dev, libffi-dev, - lsb-release, patchutils, diffstat, xz-utils, python3-dev, + lsb-release, patchutils, diffstat, xz-utils, python3-dev, libc++1-19, libc++abi1-19, libomp5-19 [amd64 arm64 armhf i386 loong64 mips64el ppc64 ppc64el riscv64 hurd-amd64], libunwind-19, libllvm19, libedit-dev, libncurses-dev, swig, python3-sphinx (>= 1.3.6), binutils-dev, lld [amd64 arm64 armel armhf i386 loong64 ppc64el riscv64 s390x] | hello [amd64 arm64 armel armhf i386 loong64 ppc64el riscv64 s390x], libxml2-dev, libipt-dev [amd64 i386], lcov, procps, help2man, zlib1g-dev, libzstd-dev, - g++-multilib [amd64 i386 mips64 mips64el mipsel powerpc ppc64 sparc sparc64 x32] | hello [amd64 i386 mips64 mips64el mipsel powerpc ppc64 sparc sparc64 x32], + g++-multilib [amd64 i386 mips64 mips64el mipsel powerpc ppc64 s390x sparc sparc64 x32] | hello [amd64 i386 mips64 mips64el mipsel powerpc ppc64 s390x sparc sparc64 x32], libjs-mathjax, python3-myst-parser | python3-recommonmark, python3-pexpect, doxygen, time, dh-exec, dh-python, ocaml-base [amd64 arm64 ppc64el riscv64 s390x] | ocaml-nox [amd64 arm64 ppc64el riscv64 s390x] , ocaml-findlib [amd64 arm64 ppc64el riscv64 s390x] , libctypes-ocaml-dev [amd64 arm64 ppc64el riscv64 s390x] , dh-ocaml [amd64 arm64 ppc64el riscv64 s390x] , @@ -23,7 +23,7 @@ # "| hello" is for older buster/bionic distros without spirv support # We need to keep the constraints coherent between the two alternatives, otherwise # hello would get installed unexpectedly and prevent e.g. wasi-libc from getting pulled - llvm-spirv-22 [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] | hello [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] , + llvm-spirv-19 [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] | hello [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] , spirv-tools [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] | hello [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] , wasi-libc | hello, mingw-w64-common, @@ -650,7 +650,7 @@ Build-Profiles: Section: libdevel Architecture: amd64 arm64 armhf i386 loong64 mips64el ppc64 ppc64el riscv64 hurd-amd64 -Depends: libomp5 (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: libomp5-19, ${shlibs:Depends}, ${misc:Depends} Suggests: libomp-22-doc Breaks: libomp-dev (<< 3.7-1), libomp5 (<< 1:22~++20251023025710+3f47a7be1ae6-1~exp4) Provides: libomp-x.y-dev @@ -660,20 +660,8 @@ The runtime is the part of the OpenMP implementation that your code is linked against, and that manages the multiple threads in an OpenMP program while it is executing. - -Package: libomp5 -Build-Profiles: -Architecture: amd64 arm64 armhf i386 loong64 mips64el ppc64 ppc64el riscv64 hurd-amd64 -Multi-Arch: same -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libomp-x.y -Conflicts: libomp-x.y -Breaks: libomp5-22 -Replaces: libomp5-22, libomp-x.y -Description: LLVM OpenMP runtime - The runtime is the part of the OpenMP implementation that your code is - linked against, and that manages the multiple threads in an OpenMP program - while it is executing. + . + NOTE: dynamic linking is not supported in this backport. Package: libomp-22-doc Build-Profiles: @@ -724,36 +712,11 @@ # ------------- libcxx ------------- -Package: libc++1 -Build-Profiles: -Section: libs -Architecture: amd64 arm64 armel armhf hurd-amd64 hurd-i386 i386 loong64 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc sparc64 x32 -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: clang -Provides: libc++-x.y -Conflicts: libc++-x.y -Replaces: libc++1-21, libc++-x.y -Breaks: libc++1-21, libc++1-19, libc++abi1-19, libc++1-14, libc++abi1-14 -Description: LLVM C++ Standard library - libc++ is another implementation of the C++ standard library. - . - Features and Goals - . - * Correctness as defined by the C++ standards. - * Fast execution. - * Minimal memory use. - * Fast compile times. - * ABI compatibility with gcc's libstdc++ for some low-level features such - as exception objects, rtti and memory allocation. - * Extensive unit tests. - Package: libc++-22-dev Build-Profiles: Section: libdevel Architecture: amd64 arm64 armel armhf hurd-amd64 hurd-i386 i386 loong64 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc sparc64 x32 -Depends: libc++1 (>= ${binary:Version}), ${misc:Depends}, +Depends: libc++1-19, ${misc:Depends}, libc++abi-22-dev (= ${binary:Version}) Provides: libc++-x.y-dev Conflicts: libc++-x.y-dev @@ -762,6 +725,8 @@ Description: LLVM C++ Standard library (development files) libc++ is another implementation of the C++ standard library . + NOTE: dynamic linking is not supported in this backport. + . Features and Goals . * Correctness as defined by the C++ standards. @@ -798,31 +763,11 @@ # ------------- libcxxabi ------------- -Package: libc++abi1 -Build-Profiles: -Section: libs -Architecture: amd64 arm64 armel armhf hurd-amd64 hurd-i386 i386 loong64 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc sparc64 x32 -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libc++abi-x.y -Conflicts: libc++abi-x.y -Replaces: libc++abi1-21, libc++abi-x.y -Breaks: libc++abi1-21, libc++abi1-19, libc++abi1-14 -Description: LLVM low level support for a standard C++ library - libc++abi is another implementation of low level support for a standard C++ - library. - . - Features and Goals - . - * Correctness as defined by the C++ standards. - * Provide a portable sublayer to ease the porting of libc++ - Package: libc++abi-22-dev Build-Profiles: Section: libdevel Architecture: amd64 arm64 armel armhf hurd-amd64 hurd-i386 i386 loong64 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc sparc64 x32 -Depends: libc++abi1 (>= ${binary:Version}), ${misc:Depends} +Depends: libc++abi1-19, ${misc:Depends} Breaks: libc++abi-dev (<= 44), libc++abi1 (<< 1:22~++20251023025710+3f47a7be1ae6-1~exp4) Provides: libc++abi-x.y-dev Conflicts: libc++abi-x.y-dev @@ -831,6 +776,8 @@ libc++abi is another implementation of low level support for a standard C++ library. . + NOTE: dynamic linking is not supported in this backport. + . Features and Goals . * Correctness as defined by the C++ standards. @@ -897,33 +844,13 @@ # ------------- libunwind ------------- -Package: llvm-libunwind1 -Build-Profiles: -Section: libs -Architecture: amd64 arm64 armhf i386 loong64 ppc64 ppc64el riscv64 s390x -Multi-Arch: same -Depends: ${shlibs:Depends}, - ${misc:Depends} -Provides: libunwind-x.y -Breaks: libunwind-21 -Conflicts: libunwind-x.y -Replaces: libunwind-x.y, libunwind-21 -Description: LLVM unwinder, not compatible with glibc - llvm-libunwind is the LLVM unwinder, with platform support for DWARF - unwind info, SjLj, and ARM EHABI. Using it for packaging work inside - Debian is not recommended, incompatible with glibc. - . - The low level libunwind API was designed to work either in-process (aka local) - or to operate on another process (aka remote), but only the local path has - been implemented. Remote unwinding remains as future work. - Package: libunwind-22-dev Build-Profiles: Section: libdevel Architecture: amd64 arm64 armhf i386 loong64 ppc64 ppc64el riscv64 s390x Depends: ${misc:Depends}, - llvm-libunwind1 (>= ${binary:Version}) + libunwind-19 Provides: libunwind-x.y-dev Conflicts: libunwind-dev, libunwind-x.y-dev Breaks: llvm-libunwind1 (<< 1:22~++20251023025710+3f47a7be1ae6-1~exp4) @@ -933,6 +860,8 @@ unwind info, SjLj, and ARM EHABI. Using it for packaging work inside Debian is not recommended, incompatible with glibc. . + NOTE: dynamic linking is not supported in this backport. + . The low level libunwind API was designed to work either in-process (aka local) or to operate on another process (aka remote), but only the local path has been implemented. Remote unwinding remains as future work. diff -urN a/llvm-toolchain-22-22.1.7/debian/control.in b/llvm-toolchain-22-22.1.7/debian/control.in --- a/llvm-toolchain-22-22.1.7/debian/control.in 2026-05-06 07:14:26.000000000 +0000 +++ b/llvm-toolchain-22-22.1.7/debian/control.in 2026-06-23 17:58:38.689665369 +0000 @@ -23,7 +23,7 @@ # "| hello" is for older buster/bionic distros without spirv support # We need to keep the constraints coherent between the two alternatives, otherwise # hello would get installed unexpectedly and prevent e.g. wasi-libc from getting pulled - llvm-spirv-22 [@LLVM_SPIRV_ARCHS@] @BEGIN_OPTIONAL_HELLO@ | hello [@LLVM_SPIRV_ARCHS@] @END_OPTIONAL_HELLO@, + llvm-spirv-19 [@LLVM_SPIRV_ARCHS@] @BEGIN_OPTIONAL_HELLO@ | hello [@LLVM_SPIRV_ARCHS@] @END_OPTIONAL_HELLO@, spirv-tools [@LLVM_SPIRV_ARCHS@] @BEGIN_OPTIONAL_HELLO@ | hello [@LLVM_SPIRV_ARCHS@] @END_OPTIONAL_HELLO@, wasi-libc@BEGIN_OPTIONAL_HELLO@ | hello@END_OPTIONAL_HELLO@, mingw-w64-common, @@ -650,7 +650,7 @@ Build-Profiles: Section: libdevel Architecture: @OMP_ARCHS@ -Depends: libomp5 (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: libomp5-19, ${shlibs:Depends}, ${misc:Depends} Suggests: libomp-@LLVM_VERSION@-doc Breaks: libomp-dev (<< 3.7-1), libomp5 (<< @LIBCXX_MOVE_VERSION@) Provides: libomp-x.y-dev @@ -660,20 +660,8 @@ The runtime is the part of the OpenMP implementation that your code is linked against, and that manages the multiple threads in an OpenMP program while it is executing. - -Package: libomp5 -Build-Profiles: -Architecture: @OMP_ARCHS@ -Multi-Arch: same -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libomp-x.y -Conflicts: libomp-x.y -Breaks: libomp5-22 -Replaces: libomp5-22, libomp-x.y -Description: LLVM OpenMP runtime - The runtime is the part of the OpenMP implementation that your code is - linked against, and that manages the multiple threads in an OpenMP program - while it is executing. + . + NOTE: dynamic linking is not supported in this backport. Package: libomp-@LLVM_VERSION@-doc Build-Profiles: @@ -724,36 +712,11 @@ # ------------- libcxx ------------- -Package: libc++1 -Build-Profiles: -Section: libs -Architecture: @ANY_ARCHS@ -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: clang -Provides: libc++-x.y -Conflicts: libc++-x.y -Replaces: libc++1-21, libc++-x.y -Breaks: libc++1-21, libc++1-19, libc++abi1-19, libc++1-14, libc++abi1-14 -Description: LLVM C++ Standard library - libc++ is another implementation of the C++ standard library. - . - Features and Goals - . - * Correctness as defined by the C++ standards. - * Fast execution. - * Minimal memory use. - * Fast compile times. - * ABI compatibility with gcc's libstdc++ for some low-level features such - as exception objects, rtti and memory allocation. - * Extensive unit tests. - Package: libc++-@LLVM_VERSION@-dev Build-Profiles: Section: libdevel Architecture: @ANY_ARCHS@ -Depends: libc++1 (>= ${binary:Version}), ${misc:Depends}, +Depends: libc++1-19, ${misc:Depends}, libc++abi-@LLVM_VERSION@-dev (= ${binary:Version}) Provides: libc++-x.y-dev Conflicts: libc++-x.y-dev @@ -762,6 +725,8 @@ Description: LLVM C++ Standard library (development files) libc++ is another implementation of the C++ standard library . + NOTE: dynamic linking is not supported in this backport. + . Features and Goals . * Correctness as defined by the C++ standards. @@ -798,31 +763,11 @@ # ------------- libcxxabi ------------- -Package: libc++abi1 -Build-Profiles: -Section: libs -Architecture: @ANY_ARCHS@ -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libc++abi-x.y -Conflicts: libc++abi-x.y -Replaces: libc++abi1-21, libc++abi-x.y -Breaks: libc++abi1-21, libc++abi1-19, libc++abi1-14 -Description: LLVM low level support for a standard C++ library - libc++abi is another implementation of low level support for a standard C++ - library. - . - Features and Goals - . - * Correctness as defined by the C++ standards. - * Provide a portable sublayer to ease the porting of libc++ - Package: libc++abi-@LLVM_VERSION@-dev Build-Profiles: Section: libdevel Architecture: @ANY_ARCHS@ -Depends: libc++abi1 (>= ${binary:Version}), ${misc:Depends} +Depends: libc++abi1-19, ${misc:Depends} Breaks: libc++abi-dev (<= 44), libc++abi1 (<< @LIBCXX_MOVE_VERSION@) Provides: libc++abi-x.y-dev Conflicts: libc++abi-x.y-dev @@ -831,6 +776,8 @@ libc++abi is another implementation of low level support for a standard C++ library. . + NOTE: dynamic linking is not supported in this backport. + . Features and Goals . * Correctness as defined by the C++ standards. @@ -897,33 +844,13 @@ # ------------- libunwind ------------- -Package: llvm-libunwind1 -Build-Profiles: -Section: libs -Architecture: @LIBUNWIND_ARCHS@ -Multi-Arch: same -Depends: ${shlibs:Depends}, - ${misc:Depends} -Provides: libunwind-x.y -Breaks: libunwind-21 -Conflicts: libunwind-x.y -Replaces: libunwind-x.y, libunwind-21 -Description: LLVM unwinder, not compatible with glibc - llvm-libunwind is the LLVM unwinder, with platform support for DWARF - unwind info, SjLj, and ARM EHABI. Using it for packaging work inside - Debian is not recommended, incompatible with glibc. - . - The low level libunwind API was designed to work either in-process (aka local) - or to operate on another process (aka remote), but only the local path has - been implemented. Remote unwinding remains as future work. - Package: libunwind-@LLVM_VERSION@-dev Build-Profiles: Section: libdevel Architecture: @LIBUNWIND_ARCHS@ Depends: ${misc:Depends}, - llvm-libunwind1 (>= ${binary:Version}) + libunwind-19 Provides: libunwind-x.y-dev Conflicts: libunwind-dev, libunwind-x.y-dev Breaks: llvm-libunwind1 (<< @LIBCXX_MOVE_VERSION@) @@ -933,6 +860,8 @@ unwind info, SjLj, and ARM EHABI. Using it for packaging work inside Debian is not recommended, incompatible with glibc. . + NOTE: dynamic linking is not supported in this backport. + . The low level libunwind API was designed to work either in-process (aka local) or to operate on another process (aka remote), but only the local path has been implemented. Remote unwinding remains as future work. diff -urN a/llvm-toolchain-22-22.1.7/debian/rules b/llvm-toolchain-22-22.1.7/debian/rules --- a/llvm-toolchain-22-22.1.7/debian/rules 2026-06-02 07:17:45.000000000 +0000 +++ b/llvm-toolchain-22-22.1.7/debian/rules 2026-06-22 22:29:55.352542525 +0000 @@ -186,12 +186,12 @@ endif endif # set these two when building without the common packages -#SKIP_COMMON_PACKAGES = yes -#NEW_LLVM_VERSION = 23 +SKIP_COMMON_PACKAGES = yes +NEW_LLVM_VERSION = 19 ifeq ($(SKIP_COMMON_PACKAGES),yes) COMMON_PKGS := $(shell cat debian/packages.common) - COMMON_BUILD_DEPS = $(foreach p,$(COMMON_PKGS),$(p)$(COMMA)) + COMMON_BUILD_DEPS = $(subst llvm-libunwind1,libunwind,$(foreach p,$(COMMON_PKGS),$(p)-$(NEW_LLVM_VERSION)$(COMMA))) # make sure the common packages exist for the new LLVM version NEXT_LIBLLVM_PKG = libllvm$(NEW_LLVM_VERSION), endif @@ -710,7 +710,7 @@ STAGE_ALL_CMAKE_EXTRA += -DLIBOMP_LIBFLAGS="-lm" endif ifeq ($(SKIP_COMMON_PACKAGES),yes) - COMMON_BUILD_DEPS := $(subst libomp5,libomp5 [$(OMP_ARCHS)],$(COMMON_BUILD_DEPS)) + COMMON_BUILD_DEPS := $(subst libomp5-19,libomp5-19 [$(OMP_ARCHS)],$(COMMON_BUILD_DEPS)) endif # Enable offloading (or not)