diff -Nru rustc-1.49.0+dfsg1/debian/architecture.mk rustc-1.49.0+dfsg1/debian/architecture.mk
--- rustc-1.49.0+dfsg1/debian/architecture.mk	2020-12-01 19:41:30.000000000 +0000
+++ rustc-1.49.0+dfsg1/debian/architecture.mk	2021-09-09 17:29:46.000000000 +0000
@@ -3,10 +3,7 @@
 include /usr/share/dpkg/architecture.mk
 
 rust_cpu = $(subst i586,i686,\
-$(if $(findstring -riscv64-,-$(2)-),$(subst riscv64,riscv64gc,$(1)),\
-$(if $(findstring -armhf-,-$(2)-),$(subst arm,armv7,$(1)),\
-$(if $(findstring -armel-,-$(2)-),$(subst arm,armv5te,$(1)),\
-$(1)))))
+$(if $(findstring -riscv64-,-$(2)-),$(subst riscv64,riscv64gc,$(1)),$(1)))
 rust_type_setvar = $(1)_RUST_TYPE ?= $(call rust_cpu,$($(1)_GNU_CPU),$($(1)_ARCH))-unknown-$($(1)_GNU_SYSTEM)
 
 $(foreach machine,BUILD HOST TARGET,\
@@ -16,3 +13,5 @@
 ifeq ($(DEB_TARGET_RUST_TYPE),-unknown-)
   DEB_TARGET_RUST_TYPE = $(DEB_HOST_RUST_TYPE)
 endif
+
+DEB_BUILD_RUST_TYPE = $(shell RUSTC_BOOTSTRAP=1 rustc -Z unstable-options --print target-spec-json | python3 -c 'import json,sys;obj=json.load(sys.stdin);print(obj["llvm-target"])')
diff -Nru rustc-1.49.0+dfsg1/debian/changelog rustc-1.49.0+dfsg1/debian/changelog
--- rustc-1.49.0+dfsg1/debian/changelog	2021-08-28 09:48:11.000000000 +0000
+++ rustc-1.49.0+dfsg1/debian/changelog	2021-09-09 17:29:46.000000000 +0000
@@ -1,3 +1,16 @@
+rustc (1.49.0+dfsg1-1+rpi1) bookworm-staging; urgency=medium
+
+  [changes brought forward from 1.15.1+dfsg1-1~exp3+rpi1 by Peter Michael Green <plugwash@raspbian.org> at Wed, 15 Mar 2017 10:16:18 +0000]
+  * Build for armv6.
+  [changes introduced in 1.18.0+dfsg1-4+rpi1 by Peter Michael Green]
+  * Disable testsuite.
+  [changes introduced in 1.37.0+dfsg1-1+rpi1 by Peter Michael Green]
+  * Set DEB_BUILD_RUST_TYPE based on the compiler that is actually installed.
+  [changes introduced in 1.42.0+dfsg1-1+rpi1 by Peter Michael Green]
+  * Use the compiler itself rather than dpkg to detect DEB_BUILD_RUST_TYPE
+
+ -- Raspbian forward porter <root@raspbian.org>  Thu, 09 Sep 2021 17:29:46 +0000
+
 rustc (1.49.0+dfsg1-1) unstable; urgency=medium
 
   * Upload to unstable.
diff -Nru rustc-1.49.0+dfsg1/debian/rules rustc-1.49.0+dfsg1/debian/rules
--- rustc-1.49.0+dfsg1/debian/rules	2021-08-28 09:44:27.000000000 +0000
+++ rustc-1.49.0+dfsg1/debian/rules	2021-09-09 17:29:46.000000000 +0000
@@ -270,7 +270,7 @@
 		test "$$(stat -c %s "$$x")" -lt 6000000; \
 	done
 ifeq (, $(filter nocheck,$(DEB_BUILD_PROFILES)))
-ifeq (, $(filter nocheck,$(DEB_BUILD_OPTIONS)))
+ifeq (testsuitedisabled, $(filter nocheck,$(DEB_BUILD_OPTIONS)))
 	{ $(RUSTBUILD_TEST) $(RUSTBUILD_FLAGS) $(RUSTBUILD_TEST_FLAGS); echo $$?; } | tee -a $(TEST_LOG)
 	# test that the log has at least 1 pass, to prevent e.g. #57709
 	grep -l "^test .* \.\.\. ok$$" $(TEST_LOG)