diff -Nru gcc-8-cross-24/debian/changelog gcc-8-cross-25~cross1/debian/changelog
--- gcc-8-cross-24/debian/changelog	2018-12-08 16:40:51.000000000 +0800
+++ gcc-8-cross-25~cross1/debian/changelog	2019-01-10 11:35:03.000000000 +0800
@@ -1,3 +1,9 @@
+gcc-8-cross (25~cross1) unstable; urgency=medium
+
+  * Support binnmu.
+
+ -- YunQiang Su <syq@debian.org>  Thu, 10 Jan 2019 11:35:03 +0800
+
 gcc-8-cross (24) unstable; urgency=medium
 
   * Build using gcc 8.2.0-11.
diff -Nru gcc-8-cross-24/debian/cur_cross_version.sh gcc-8-cross-25~cross1/debian/cur_cross_version.sh
--- gcc-8-cross-24/debian/cur_cross_version.sh	1970-01-01 08:00:00.000000000 +0800
+++ gcc-8-cross-25~cross1/debian/cur_cross_version.sh	2019-01-10 11:35:03.000000000 +0800
@@ -0,0 +1,67 @@
+#! /bin/sh
+
+arch="$1"
+if [ -z "$1" ]; then
+    echo >&2 "usage: $0 <architecture>"
+    exit 1
+fi
+
+[ -z "$TARGET_ARCH" ] && verbose=y
+
+#vendor=$(if dpkg-vendor --derives-from Ubuntu; then echo ubuntu; else echo debian; fi)
+gcc_ver=$(dpkg-parsechangelog |egrep ^Source:|cut -f2 -d' '|cut -f2 -d'-')
+
+cross=cross
+case "$arch" in
+    arm64)
+	pkg_all=libgcc-${gcc_ver}-dev-arm64-cross;;
+    ppc64)
+	pkg_all=libgcc-${gcc_ver}-dev-ppc64-cross;;
+    mips64r6el)
+	pkg_all=libgcc-${gcc_ver}-dev-mips64r6el-cross;;
+    *)
+	echo >&2 "usage: $0 <architecture>"
+	echo >&2 "  select from arm64, ppc64, mips64r6el"
+	exit 1
+esac
+case "$(dpkg-architecture -qDEB_HOST_ARCH)" in
+    arm64)
+	pkg_any=gcc-${gcc_ver}-arm-linux-gnueabihf-base;;
+    ppc64)
+	pkg_any=gcc-${gcc_ver}-powerpc64le-linux-gnu-base;;
+    ppc64el)
+	pkg_any=gcc-${gcc_ver}-powerpc-linux-gnu-base;;
+    amd64|i386|x32)
+	case "$arch" in
+	    arm64)
+		pkg_any=gcc-${gcc_ver}-aarch64-linux-gnu-base;;
+	    ppc64)
+		pkg_any=gcc-${gcc_ver}-powerpc64-linux-gnu-base;;
+	esac;;
+esac
+
+v_deb_gcc=$(apt-cache policy gcc-${gcc_ver}-source | awk '/^ \*\*\*/ {print $2}')
+
+v_deb_gcc_cross=$(apt-cache show --no-all-versions $pkg_all 2>/dev/null | awk '/^Version/ {print $2}')
+
+if [ -n "$verbose" ]; then
+    echo >&2 "gcc: $v_deb_gcc / $v_deb_gcc_cross"
+fi
+
+if [ -n "$v_deb_gcc_cross" ]; then
+    v_deb_gcc_cross_v=$(echo $v_deb_gcc_cross | sed 's/\(.*\)c[ros]*.*/\1/')
+    v_deb_gcc_cross_c=$(echo $v_deb_gcc_cross | sed 's/.*c[ros]*\(.*\)/\1/')
+    case "$v_deb_gcc_cross_c" in
+	*.*) v_deb_gcc_cross_c=$(echo $v_deb_gcc_cross_c | awk -F. '{print $1}')
+    esac
+else
+    v_deb_gcc_cross_v=$v_deb_gcc
+    v_deb_gcc_cross_c=0
+fi
+
+if [ -n "$verbose" ]; then
+    echo >&2 ""
+    echo >&2 "old gcc version: $v_deb_gcc_cross_v / $v_deb_gcc_cross_c"
+fi
+
+echo ${v_deb_gcc_cross_v}cross${v_deb_gcc_cross_c}
diff -Nru gcc-8-cross-24/debian/new_cross_version.sh gcc-8-cross-25~cross1/debian/new_cross_version.sh
--- gcc-8-cross-24/debian/new_cross_version.sh	2018-11-23 19:11:54.000000000 +0800
+++ gcc-8-cross-25~cross1/debian/new_cross_version.sh	1970-01-01 08:00:00.000000000 +0800
@@ -1,82 +0,0 @@
-#! /bin/sh
-
-arch="$1"
-if [ -z "$1" ]; then
-    echo >&2 "usage: $0 <architecture>"
-    exit 1
-fi
-
-[ -z "$TARGET_ARCH" ] && verbose=y
-
-#vendor=$(if dpkg-vendor --derives-from Ubuntu; then echo ubuntu; else echo debian; fi)
-
-cross=c
-cross=cross
-case "$arch" in
-    arm64)
-	pkg_all=libgcc-8-dev-arm64-cross;;
-    ppc64)
-	pkg_all=libgcc-8-dev-ppc64-cross;;
-    *)
-	echo >&2 "usage: $0 <architecture>"
-	exit 1
-esac
-case "$(dpkg-architecture -qDEB_HOST_ARCH)" in
-    arm64)
-	pkg_any=gcc-8-arm-linux-gnueabihf-base;;
-    ppc64)
-	pkg_any=gcc-8-powerpc64le-linux-gnu-base;;
-    ppc64el)
-	pkg_any=gcc-8-powerpc-linux-gnu-base;;
-    amd64|i386|x32)
-	case "$arch" in
-	    arm64)
-		pkg_any=gcc-8-aarch64-linux-gnu-base;;
-	    ppc64)
-		pkg_any=gcc-8-powerpc64-linux-gnu-base;;
-	esac;;
-esac
-
-v_deb_gcc=$(apt-cache policy gcc-8-source | awk '/^ \*\*\*/ {print $2}')
-
-v_deb_gcc_cross=$(apt-cache show --no-all-versions $pkg_all 2>/dev/null | awk '/^Version/ {print $2}')
-
-if [ -n "$verbose" ]; then
-    echo >&2 "gcc: $v_deb_gcc / $v_deb_gcc_cross"
-fi
-
-if [ -n "$v_deb_gcc_cross" ]; then
-    v_deb_gcc_cross_v=$(echo $v_deb_gcc_cross | sed 's/\(.*\)c[ros]*.*/\1/')
-    v_deb_gcc_cross_c=$(echo $v_deb_gcc_cross | sed 's/.*c[ros]*\(.*\)/\1/')
-    case "$v_deb_gcc_cross_c" in
-	*.*) v_deb_gcc_cross_c=$(echo $v_deb_gcc_cross_c | awk -F. '{print $1}')
-    esac				
-else
-    v_deb_gcc_cross_v=$v_deb_gcc
-    v_deb_gcc_cross_c=0
-fi
-
-if [ -n "$verbose" ]; then
-    echo >&2 ""
-    echo >&2 "old gcc version: $v_deb_gcc_cross_v / $v_deb_gcc_cross_c"
-fi
-
-if dpkg --compare-versions $v_deb_gcc gt $v_deb_gcc_cross_v; then
-    v_gcc_new_c=1
-else
-    v_deb_src=$(apt-cache show --no-all-versions $pkg_all 2>/dev/null | sed -n '/^Source:/s/.*(\(.*\))/\1/p')
-    [ -n "$v_deb_src" ] || v_deb_src=1
-    v_src=$(dpkg-parsechangelog| sed -n 's/-*//; s/^Version: \(.*\)/\1/p')
-    if dpkg --compare-versions $v_deb_src lt $v_src; then
-	v_gcc_new_c=$(expr $v_deb_gcc_cross_c + 1)
-    else
-	v_gcc_new_c=$v_deb_gcc_cross_c
-    fi
-fi
-
-if [ -n "$verbose" ]; then
-    echo >&2 ""
-    echo >&2 "new gcc version: ${v_deb_gcc}${cross}${v_gcc_new_c}"
-
-    echo $v_gcc_new_c
-fi
diff -Nru gcc-8-cross-24/debian/rules gcc-8-cross-25~cross1/debian/rules
--- gcc-8-cross-24/debian/rules	2018-12-08 16:40:51.000000000 +0800
+++ gcc-8-cross-25~cross1/debian/rules	2019-01-10 11:35:03.000000000 +0800
@@ -51,10 +51,22 @@
   #MIN_VER_GCC      := ${GCC_VER}-20160225-0~
 endif
 
+GCC_SOURCE_VER := $(shell apt-cache policy gcc-$(GCC_VER)-source | awk '/^ \*\*\*/ {print $$2}')
+
 DEB_NAME_ACT     := $(shell dpkg-parsechangelog| sed -n 's/-*//; s/^Source: \(.*\)/\1/p')
 DEB_SVER_ACT     := $(shell dpkg-parsechangelog| sed -n 's/-*//; s/^Version: \(.*\)/\1/p')
-DEB_VER_ACT      := $(shell /bin/sh debian/new_cross_version.sh $(if $(filter $(DEB_NAME_ACT), gcc-8-cross),arm64,ppc64))
+ifeq ($(DEB_NAME_ACT),gcc-$(GCC_VER)-cross)
+  DEB_VER_ACT_REQUIRE  := $(shell /bin/sh debian/cur_cross_version.sh arm64)
+else ifeq ($(DEB_NAME_ACT),gcc-$(GCC_VER)-cross-mipsen)
+  DEB_VER_ACT_REQUIRE  := $(shell /bin/sh debian/cur_cross_version.sh mips64r6el)
+else
+  DEB_VER_ACT_REQUIRE  := $(shell /bin/sh debian/cur_cross_version.sh ppc64)
+endif
+DEB_VER_ACT  := $(shell dpkg-parsechangelog |egrep ^Version:| sed 's/.*c[ros]*\(.*\)/\1/')
 CROSS_EXT       := cross$(DEB_VER_ACT)
+ifeq (error,$(shell dpkg --compare-versions $(DEB_VER_ACT_REQUIRE) ge $(GCC_SOURCE_VER)$(CROSS_EXT) && echo "error"))
+  $(error Version in Debian Archive >= Version in debian/changelog)
+endif
 
 VER_GCC        := $(shell dpkg-parsechangelog -l/usr/src/gcc-${GCC_VER}/debian/changelog | awk '/^Version:/ {print $$2}' | sed 's/-[^-]*$$//')
 GCC_DIR        := /usr/src/gcc-${GCC_VER}
@@ -108,7 +120,7 @@
 stamp            := stamp-dir/
 
 ifeq (,$(CROSS_ARCHS))
-  ifeq ($(DEB_NAME_ACT),gcc-8-cross)
+  ifeq ($(DEB_NAME_ACT),gcc-$(GCC_VER)-cross)
     ifneq (,$(filter $(HOST_ARCH),amd64 i386 x32))
       CROSS_ARCHS  = amd64
       CROSS_ARCHS  += s390x ppc64el arm64 armhf armel \
@@ -125,7 +137,7 @@
       CROSS_ARCHS =
     endif
     GCC_PORTS_BUILD=
-  else ifeq ($(DEB_NAME_ACT),gcc-8-cross-mipsen)
+  else ifeq ($(DEB_NAME_ACT),gcc-$(GCC_VER)-cross-mipsen)
     ifneq (,$(filter $(HOST_ARCH),amd64 i386 x32))
       CROSS_ARCHS  ?= mips64 \
         mipsr6 mipsr6el mips64r6 mips64r6el
