diff -pruN 2~c3/debian/changelog 3~c1/debian/changelog
--- 2~c3/debian/changelog	2019-04-29 04:19:47.000000000 +0000
+++ 3~c1/debian/changelog	2019-08-02 00:46:40.000000000 +0000
@@ -1,3 +1,9 @@
+gcc-8-cross-mipsen (3~c1) unstable; urgency=medium
+
+  * sync changes from gcc-8-cross (29).
+
+ -- YunQiang Su <syq@debian.org>  Fri, 02 Aug 2019 08:46:40 +0800
+
 gcc-8-cross-mipsen (2~c3) unstable; urgency=medium
 
   * Build-dep 8.3.0-7.
diff -pruN 2~c3/debian/control.source.in 3~c1/debian/control.source.in
--- 2~c3/debian/control.source.in	2019-02-18 10:12:37.000000000 +0000
+++ 3~c1/debian/control.source.in	2019-08-02 00:36:47.000000000 +0000
@@ -19,7 +19,7 @@ Build-Depends: gcc-GCC_VER-source (>= MI
   gccgo-GCC_VER,
   gdc-GCC_VER,
   gnat-GCC_VER [!m32r !sh3 !sh3eb !sh4eb],
-  xz-utils, zlib1g-dev, python3
+  xz-utils, zlib1g-dev, python3,
 Build-Conflicts: gcc-multilib,
   libc6-amd64 [i386 x32], libc6-i386 [amd64 x32], libc6-x32 [amd64 i386]
 Homepage: http://gcc.gnu.org/
diff -pruN 2~c3/debian/new_cross_version.sh 3~c1/debian/new_cross_version.sh
--- 2~c3/debian/new_cross_version.sh	1970-01-01 00:00:00.000000000 +0000
+++ 3~c1/debian/new_cross_version.sh	2019-08-02 00:42:38.000000000 +0000
@@ -0,0 +1,86 @@
+#! /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;;
+    mipsr6el)
+	pkg_all=libgcc-8-dev-mipsr6el-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;;
+	    mipsr6el)
+		pkg_any=gcc-8-mipsisa32r6el-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 -pruN 2~c3/debian/packages.invalid 3~c1/debian/packages.invalid
--- 2~c3/debian/packages.invalid	2019-02-18 10:13:23.000000000 +0000
+++ 3~c1/debian/packages.invalid	2019-08-02 00:35:06.000000000 +0000
@@ -1236,7 +1236,9 @@ libgcc4-s390x-cross
 libgcc4-sh4-cross
 libgcc4-sparc64-cross
 libgcc4-x32-cross
+libgnat-8-dbg-powerpcspe-cross
 libgnat-8-dbg-riscv64-cross
+libgnat-8-powerpcspe-cross
 libgnat-8-riscv64-cross
 libgo13-hppa-cross
 libgo13-m68k-cross
diff -pruN 2~c3/debian/rules 3~c1/debian/rules
--- 2~c3/debian/rules	2019-04-29 04:19:47.000000000 +0000
+++ 3~c1/debian/rules	2019-08-02 00:45:17.000000000 +0000
@@ -6,11 +6,18 @@ space +=
 $(space) := 
 $(space) +=
 
-NJOBS =
 # Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
 ifneq (,$(filter parallel=%,$(subst $(,), ,$(DEB_BUILD_OPTIONS))))
-  NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(,),$(space),$(DEB_BUILD_OPTIONS))))
+  JOBS := $(subst parallel=,,$(filter parallel=%,$(subst $(,),$(space),$(DEB_BUILD_OPTIONS))))
+  ifeq ($(JOBS),1)
+    JOBS := 2
+  endif
+else
+  JOBS := 2
 endif
+DEB_BUILD_OPTIONS := $(filter-out parallel=%,$(DEB_BUILD_OPTIONS)) parallel=$(JOBS)
+export DEB_BUILD_OPTIONS
+NJOBS = -j $(JOBS)
 
 vendor := $(shell if dpkg-vendor --derives-from Ubuntu; then echo Ubuntu; else echo Debian; fi)
 
@@ -51,22 +58,14 @@ ifndef MIN_VER_GCC
   #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')
-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)
+ifeq ($(DEB_NAME_ACT),gcc-8-cross-mipsen)
+  DEB_VER_ACT      := $(shell /bin/sh debian/new_cross_version.sh mipsr6el)
 else
-  DEB_VER_ACT_REQUIRE  := $(shell /bin/sh debian/cur_cross_version.sh ppc64)
+  DEB_VER_ACT      := $(shell /bin/sh debian/new_cross_version.sh $(if $(filter $(DEB_NAME_ACT), gcc-8-cross),arm64,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}
@@ -97,14 +96,14 @@ HOST_ARCHS_mips = amd64 i386 x32
 HOST_ARCHS_mipsel = amd64 i386 x32
 HOST_ARCHS_mipsn32 = amd64 i386 x32
 HOST_ARCHS_mipsn32el = amd64 i386 x32
-HOST_ARCHS_mips64 = amd64 i386 x32 mips64el
+HOST_ARCHS_mips64 = amd64 i386 x32
 HOST_ARCHS_mips64el = amd64 i386 x32
-HOST_ARCHS_mipsr6 = amd64 i386 x32 mips64el
-HOST_ARCHS_mipsr6el = amd64 i386 x32 mips64el
+HOST_ARCHS_mipsr6 = amd64 i386 x32
+HOST_ARCHS_mipsr6el = amd64 i386 x32
 HOST_ARCHS_mipsn32r6 = amd64 i386 x32
 HOST_ARCHS_mipsn32r6el = amd64 i386 x32
-HOST_ARCHS_mips64r6 = amd64 i386 x32 mips64el
-HOST_ARCHS_mips64r6el = amd64 i386 x32 mips64el
+HOST_ARCHS_mips64r6 = amd64 i386 x32
+HOST_ARCHS_mips64r6el = amd64 i386 x32
 HOST_ARCHS_powerpc = amd64 i386 x32 ppc64el
 HOST_ARCHS_powerpcspe = amd64 i386 x32
 HOST_ARCHS_ppc64 = amd64 i386 x32
@@ -120,7 +119,7 @@ HOST_ARCH        := $(shell dpkg-archite
 stamp            := stamp-dir/
 
 ifeq (,$(CROSS_ARCHS))
-  ifeq ($(DEB_NAME_ACT),gcc-$(GCC_VER)-cross)
+  ifeq ($(DEB_NAME_ACT),gcc-8-cross)
     ifneq (,$(filter $(HOST_ARCH),amd64 i386 x32))
       CROSS_ARCHS  = amd64
       CROSS_ARCHS  += s390x ppc64el arm64 armhf armel \
@@ -137,8 +136,8 @@ ifeq (,$(CROSS_ARCHS))
       CROSS_ARCHS =
     endif
     GCC_PORTS_BUILD=
-  else ifeq ($(DEB_NAME_ACT),gcc-$(GCC_VER)-cross-mipsen)
-    ifneq (,$(filter $(HOST_ARCH),amd64 i386 x32 arm64 ppc64el mips64el))
+  else ifeq ($(DEB_NAME_ACT),gcc-8-cross-mipsen)
+    ifneq (,$(filter $(HOST_ARCH),amd64 i386 x32))
       CROSS_ARCHS  ?= mips64 \
         mipsr6 mipsr6el mips64r6 mips64r6el
       # n32: mipsn32 mipsn32el mipsn32r6 mipsn32r6el
@@ -186,7 +185,7 @@ libgcc_source := $(shell apt-cache show
 #  skip_common_packages = yes
 #endif
 
-BINUTILS_BUILD_DEPS = $(foreach a,$(CROSS_ARCHS),binutils-$(call _pkg_gnu_type,$(a)) (>= $(MIN_VER_BINUTILS)) [$(HOST_ARCHS_$(a))]$(,))
+BINUTILS_BUILD_DEPS = $(foreach a,$(CROSS_ARCHS),binutils-$(call _pkg_gnu_type,$(a)):any (>= $(MIN_VER_BINUTILS)) [$(HOST_ARCHS_$(a))]$(,))
 GLIBC_BUILD_DEPS = $(foreach a,$(CROSS_ARCHS),libc6$(if $(filter $(a),alpha ia64),.1)-dev-$(a)-cross (>= $(MIN_VER_GLIBC)) [$(HOST_ARCHS_$(a))]$(,))
 LINUX_BUILD_DEPS = $(foreach a,$(CROSS_ARCHS),linux-libc-dev-$(a)-cross [$(HOST_ARCHS_$(a))]$(,))
 
