diff -Nru gcc-13-13.3.0/debian/changelog gcc-13-13.3.0/debian/changelog
--- gcc-13-13.3.0/debian/changelog	2024-06-19 14:43:00.000000000 +0000
+++ gcc-13-13.3.0/debian/changelog	2024-06-27 13:07:11.000000000 +0000
@@ -1,3 +1,9 @@
+gcc-13 (13.3.0-1.1) unstable; urgency=medium
+
+  * arm64: Build with PAC/BTI support.
+
+ -- Emanuele Rocca <ema@debian.org>  Thu, 27 Jun 2024 13:07:11 +0000
+
 gcc-13 (13.3.0-1) unstable; urgency=medium
 
   * GCC 13.3.0 release.
diff -Nru gcc-13-13.3.0/debian/rules2 gcc-13-13.3.0/debian/rules2
--- gcc-13-13.3.0/debian/rules2	2024-03-23 10:56:05.000000000 +0000
+++ gcc-13-13.3.0/debian/rules2	2024-06-27 13:07:11.000000000 +0000
@@ -199,6 +199,35 @@
   STAGE1_LDFLAGS	=
 endif
 
+ifeq ($(DEB_TARGET_ARCH),arm64)
+  # Build with PAC/BTI support if enabled in the build flags
+  # https://wiki.debian.org/ToolChain/PACBTI
+  ifneq (,$(findstring -mbranch-protection=standard,$(shell dpkg-buildflags --get CFLAGS)))
+    CFLAGS_SECURE = -mbranch-protection=standard
+  else
+    CFLAGS_SECURE =
+  endif
+  ifneq (,$(findstring -mbranch-protection=standard,$(shell dpkg-buildflags --get CXXFLAGS)))
+    CXXFLAGS_SECURE = -mbranch-protection=standard
+  else
+    CXXFLAGS_SECURE =
+  endif
+
+  ifeq ($(DEB_CROSS),yes)
+    # Building cross compilers
+    CFLAGS_FOR_TARGET += $(CFLAGS_SECURE)
+    CXXFLAGS_FOR_TARGET += $(CXXFLAGS_SECURE)
+  else ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+    # Cross build of the native compiler
+    CFLAGS_FOR_TARGET += $(CFLAGS_SECURE)
+    CXXFLAGS_FOR_TARGET += $(CXXFLAGS_SECURE)
+  else
+    # Native build
+    CFLAGS += $(CFLAGS_SECURE)
+    CXXFLAGS += $(CXXFLAGS_SECURE)
+  endif
+endif
+
 # set CFLAGS/LDFLAGS for the configure step only, maybe be modifed for some target
 # all other flags are passed to the make step.
 pass_vars = $(foreach v,$(1),$(if $($(v)),$(v)="$($(v))"))
