diff -pruN 1:21.1.2-2/debian/changelog 1:21.1.2-2ubuntu6/debian/changelog
--- 1:21.1.2-2/debian/changelog	2025-09-25 12:51:34.000000000 +0000
+++ 1:21.1.2-2ubuntu6/debian/changelog	2025-09-26 20:56:46.000000000 +0000
@@ -1,3 +1,15 @@
+llvm-toolchain-21 (1:21.1.2-2ubuntu6) questing; urgency=medium
+
+  * Don't depend on binutils-gold, making the package FTBFS due to missing lld
+  * Don't depend on |hello, fixing some failures due to alternate installation
+    of tools
+  * Don't depend on g++-multilib on s390x, unavailable
+  * Unset gold archs
+  * Cherry-pick 149665 to fix an armhf time64_t failure
+  * Install profile and xray on armhf to fix FTBFS
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Fri, 26 Sep 2025 22:56:46 +0200
+
 llvm-toolchain-21 (1:21.1.2-2) unstable; urgency=medium
 
   * Bootstrap with llvm-spirv-19 instead of 21
diff -pruN 1:21.1.2-2/debian/control 1:21.1.2-2ubuntu6/debian/control
--- 1:21.1.2-2/debian/control	2025-09-25 12:51:00.000000000 +0000
+++ 1:21.1.2-2ubuntu6/debian/control	2025-09-26 20:56:46.000000000 +0000
@@ -10,26 +10,26 @@ Build-Depends: debhelper (>= 10.0), cmak
     libffi-dev,
     lsb-release, patchutils, diffstat, xz-utils, python3-dev,
     libedit-dev, libncurses-dev, swig, python3-sphinx (>= 1.3.6),
-    binutils-dev, lld [amd64 arm64 armel armhf i386 mipsel mips64el ppc64el s390x sparc m68k ppc64 sparc64 x32 riscv64 loong64] | binutils-gold [amd64 arm64 armhf i386 ppc64 ppc64el x32 s390x hurd-i386 hurd-amd64],
+    binutils-dev, lld [amd64 arm64 armel armhf i386 mipsel mips64el ppc64el s390x sparc m68k ppc64 sparc64 x32 riscv64 loong64],
     libxml2-dev,
     libjsoncpp-dev, pkg-config,
     libipt-dev [amd64 i386],
     lcov, procps, help2man,
     zlib1g-dev, libzstd-dev,
-    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],
+    g++-multilib [amd64 i386 mips64 mips64el mipsel powerpc ppc64 sparc sparc64 x32],
     libjs-mathjax, python3-myst-parser | python3-recommonmark, python3-pexpect,
     doxygen, time,
     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-exec, dh-ocaml [amd64 arm64 ppc64el riscv64 s390x],
-    libpfm4-dev [linux-any], python3-setuptools, libz3-dev [!sh4],
+    libpfm4-dev [linux-any], python3-setuptools, 
 # "| 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-19 [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] <!stage1> | hello [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] <!stage1>,
-    spirv-tools [linux-any] <!stage1> | hello [linux-any] <!stage1>,
-    wasi-libc | hello,
+    llvm-spirv-19 [amd64 arm64 armhf i386 ppc64 ppc64el riscv64 s390x] <!stage1>,
+    spirv-tools [linux-any] <!stage1>,
+    wasi-libc,
     libcurl4-openssl-dev <!stage1> | libcurl-dev <!stage1>,
     libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
     protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] <!stage1>,
@@ -417,7 +417,7 @@ Architecture: any
 Depends: ${shlibs:Depends}, libffi-dev, ${misc:Depends},
  llvm-21 (= ${binary:Version}), libllvm21 (= ${binary:Version}), libncurses-dev,
  llvm-21-tools (= ${binary:Version}), libclang-cpp21 (= ${binary:Version}),
- libxml2-dev, libz3-dev [!sh4],
+ libxml2-dev, 
 Description: Modular compiler and toolchain technologies, libraries and headers
  LLVM is a collection of libraries and tools that make it easy to build
  compilers, optimizers, just-in-time code generators, and many other
diff -pruN 1:21.1.2-2/debian/control.in 1:21.1.2-2ubuntu6/debian/control.in
--- 1:21.1.2-2/debian/control.in	2025-09-25 12:51:08.000000000 +0000
+++ 1:21.1.2-2ubuntu6/debian/control.in	2025-09-26 20:56:46.000000000 +0000
@@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 10.0), cmak
     libffi-dev,
     lsb-release, patchutils, diffstat, xz-utils, python3-dev,
     libedit-dev, libncurses-dev, swig, python3-sphinx (>= 1.3.6),
-    binutils-dev, lld [@LLD_ARCHS@] | binutils-gold [@BINUTILS_GOLD_ARCHS@],
+    binutils-dev, lld [@LLD_ARCHS@],
     libxml2-dev,
     libjsoncpp-dev, pkg-config,
     libipt-dev [amd64 i386],
diff -pruN 1:21.1.2-2/debian/libclang-common-X.Y-dev.install.in 1:21.1.2-2ubuntu6/debian/libclang-common-X.Y-dev.install.in
--- 1:21.1.2-2/debian/libclang-common-X.Y-dev.install.in	2025-07-29 15:22:04.000000000 +0000
+++ 1:21.1.2-2ubuntu6/debian/libclang-common-X.Y-dev.install.in	2025-09-26 20:56:46.000000000 +0000
@@ -2,8 +2,8 @@
 
 usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/*.h
 usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/module.modulemap
-[!armel !armhf !powerpc !x32 !hurd-any] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/xray/
-[!armel !armhf !powerpc !x32 !hurd-any] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/profile/
+[!armel !powerpc !x32 !hurd-any] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/xray/
+[!armel !powerpc !x32 !hurd-any] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/profile/
 usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/ppc_wrappers/
 usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/openmp_wrappers/
 usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/cuda_wrappers/
diff -pruN 1:21.1.2-2/debian/patches/149665.patch 1:21.1.2-2ubuntu6/debian/patches/149665.patch
--- 1:21.1.2-2/debian/patches/149665.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:21.1.2-2ubuntu6/debian/patches/149665.patch	2025-09-26 20:56:46.000000000 +0000
@@ -0,0 +1,28 @@
+From c3ee9ea6952286c571595ee20c0656f8e6974150 Mon Sep 17 00:00:00 2001
+From: "Mikhail R. Gadelha" <mikhail@igalia.com>
+Date: Sat, 19 Jul 2025 14:30:18 -0300
+Subject: [PATCH] [libc] Fix setitimer build when full_build=OFF
+
+When we pull the headers from the system, we might get a suseconds_t
+that's a long long, so add a cast to prevent a implicit conversion
+error.
+---
+ libc/src/sys/time/linux/setitimer.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libc/src/sys/time/linux/setitimer.cpp b/libc/src/sys/time/linux/setitimer.cpp
+index 1de0d43297760..fb163586e30d9 100644
+--- a/libc/src/sys/time/linux/setitimer.cpp
++++ b/libc/src/sys/time/linux/setitimer.cpp
+@@ -22,9 +22,9 @@ LLVM_LIBC_FUNCTION(int, setitimer,
+     // There is no SYS_setitimer_time64 call, so we can't use time_t directly,
+     // and need to convert it to long first.
+     long new_value32[4] = {static_cast<long>(new_value->it_interval.tv_sec),
+-                           new_value->it_interval.tv_usec,
++                           static_cast<long>(new_value->it_interval.tv_usec),
+                            static_cast<long>(new_value->it_value.tv_sec),
+-                           new_value->it_value.tv_usec};
++                           static_cast<long>(new_value->it_value.tv_usec)};
+     long old_value32[4];
+ 
+     ret = LIBC_NAMESPACE::syscall_impl<long>(SYS_setitimer, which, new_value32,
diff -pruN 1:21.1.2-2/debian/patches/series 1:21.1.2-2ubuntu6/debian/patches/series
--- 1:21.1.2-2/debian/patches/series	2025-07-29 15:22:04.000000000 +0000
+++ 1:21.1.2-2ubuntu6/debian/patches/series	2025-09-26 20:56:46.000000000 +0000
@@ -137,3 +137,4 @@ bolt-disable-proc-check.diff
 #cmake-issue-126358.diff
 lower-flang-py-dep.diff
 revert-issue-139220.diff
+149665.patch
diff -pruN 1:21.1.2-2/debian/rules 1:21.1.2-2ubuntu6/debian/rules
--- 1:21.1.2-2/debian/rules	2025-09-20 07:12:08.000000000 +0000
+++ 1:21.1.2-2ubuntu6/debian/rules	2025-09-26 20:56:46.000000000 +0000
@@ -68,7 +68,7 @@ endif
 
 # set this macro to anything else than "yes" to avoid generating alternative
 # build dependencies on hello in the control file.
-BD_ALT_HELLO = yes
+BD_ALT_HELLO = no
 ifeq ($(BD_ALT_HELLO),yes)
   BD_ALT_HELLO_SUBST = 's/@hb@//;s/@he@//'
 else
@@ -77,7 +77,7 @@ endif
 
 # set this macro to anything else than "yes" to avoid generating alternative
 # build dependencies on hello in the control file.
-BD_ALT_HELLO = yes
+BD_ALT_HELLO = no
 ifeq ($(BD_ALT_HELLO),yes)
   BD_ALT_HELLO_SUBST = 's/@BEGIN_OPTIONAL_HELLO@//g;s/@END_OPTIONAL_HELLO@//g'
 else
@@ -128,7 +128,7 @@ DH_VERSION := $(shell dpkg -s debhelper
 
 include /usr/share/dpkg/architecture.mk
 
-MULTILIB_ARCHS := amd64 i386 mips64 mips64el mipsel powerpc ppc64 s390x sparc sparc64 x32
+MULTILIB_ARCHS := amd64 i386 mips64 mips64el mipsel powerpc ppc64 sparc sparc64 x32
 ifeq ($(DERIVATIVE),Ubuntu)
   ifeq (,$(filter $(DISTRO), bionic focal jammy noble))
     MULTILIB_ARCHS := $(filter-out s390x, $(MULTILIB_ARCHS))
@@ -408,7 +408,7 @@ ifneq (,$(filter $(DEB_HOST_ARCH),$(LLD_
     endif
 endif
 
-BINUTILS_GOLD_ARCHS := amd64 arm64 armhf i386 ppc64 ppc64el x32 s390x hurd-i386 hurd-amd64
+BINUTILS_GOLD_ARCHS := #amd64 arm64 armhf i386 ppc64 ppc64el x32 s390x hurd-i386 hurd-amd64
 ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
     ifeq ($(USE_LLD),false)
         # Only when we don't have lld
