From e5476c8e387c427d4555c7018d67753c7f188deb Mon Sep 17 00:00:00 2001
From: Dima Kogan <dima@secretsauce.net>
Date: Wed, 9 Jan 2019 12:17:07 -0800
Subject: [PATCH 04/10] added multi-arch-specific install-location patch

Added cross-ma-install-location.diff, a multiarch analogue or the existing
cross-install-location.diff. Using this if with_deps_on_target_arch_pkgs
---
 debian/patches/cross-ma-install-location.diff | 449 ++++++++++++++++++
 debian/rules.patch                            |   6 +-
 2 files changed, 454 insertions(+), 1 deletion(-)
 create mode 100644 debian/patches/cross-ma-install-location.diff

diff --git a/debian/patches/cross-ma-install-location.diff b/debian/patches/cross-ma-install-location.diff
new file mode 100644
index 0000000..43b653a
--- /dev/null
+++ b/debian/patches/cross-ma-install-location.diff
@@ -0,0 +1,449 @@
+Index: b/src/libada/configure.ac
+===================================================================
+--- a/src/libada/configure.ac
++++ b/src/libada/configure.ac
+@@ -65,22 +65,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libffi/configure.ac
+===================================================================
+--- a/src/libffi/configure.ac
++++ b/src/libffi/configure.ac
+@@ -497,21 +497,9 @@
+     AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
+   fi)
+ 
+-if test -n "$with_cross_host" &&
+-   test x"$with_cross_host" != x"no"; then
+-  toolexecdir='$(exec_prefix)/$(target_alias)'
+-  case ${with_toolexeclibdir} in
+-    no)
+-      toolexeclibdir='$(toolexecdir)/lib'
+-      ;;
+-    *)
+-      toolexeclibdir=${with_toolexeclibdir}
+-      ;;
+-  esac
+-else
+-  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-  toolexeclibdir='$(libdir)'
+-fi
++toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++toolexeclibdir='$(libdir)'
++
+ multi_os_directory=`$CC -print-multi-os-directory`
+ case $multi_os_directory in
+   .) ;; # Avoid trailing /.
+Index: b/src/libgcc/configure.ac
+===================================================================
+--- a/src/libgcc/configure.ac
++++ b/src/libgcc/configure.ac
+@@ -95,15 +95,6 @@
+ slibdir="$with_slibdir",
+ if test "${version_specific_libs}" = yes; then
+   slibdir='$(libsubdir)'
+-elif test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then
+-  case ${with_toolexeclibdir} in
+-    no)
+-      slibdir='$(exec_prefix)/$(host_noncanonical)/lib'
+-      ;;
+-    *)
+-      slibdir=${with_toolexeclibdir}
+-      ;;
+-  esac
+ else
+   slibdir='$(libdir)'
+ fi)
+@@ -141,22 +132,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_noncanonical)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libgfortran/configure.ac
+===================================================================
+--- a/src/libgfortran/configure.ac
++++ b/src/libgfortran/configure.ac
+@@ -98,22 +98,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libgo/configure.ac
+===================================================================
+--- a/src/libgo/configure.ac
++++ b/src/libgo/configure.ac
+@@ -80,21 +80,8 @@
+ 
+ # Calculate glibgo_toolexecdir, glibgo_toolexeclibdir
+ # Install a library built with a cross compiler in tooldir, not libdir.
+-if test -n "$with_cross_host" &&
+-   test x"$with_cross_host" != x"no"; then
+-  nover_glibgo_toolexecdir='${exec_prefix}/${host_alias}'
+-  case ${with_toolexeclibdir} in
+-    no)
+-      nover_glibgo_toolexeclibdir='${toolexecdir}/lib'
+-      ;;
+-    *)
+-      nover_glibgo_toolexeclibdir=${with_toolexeclibdir}
+-      ;;
+-  esac
+-else
+-  nover_glibgo_toolexecdir='${libdir}/gcc/${host_alias}'
+-  nover_glibgo_toolexeclibdir='${libdir}'
+-fi
++nover_glibgo_toolexecdir='${libdir}/gcc/${host_alias}'
++nover_glibgo_toolexeclibdir='${libdir}'
+ multi_os_directory=`$GOC -print-multi-os-directory`
+ case $multi_os_directory in
+   .) ;; # Avoid trailing /.
+Index: b/src/libgomp/configure.ac
+===================================================================
+--- a/src/libgomp/configure.ac
++++ b/src/libgomp/configure.ac
+@@ -76,22 +76,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libitm/configure.ac
+===================================================================
+--- a/src/libitm/configure.ac
++++ b/src/libitm/configure.ac
+@@ -90,22 +90,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libobjc/configure.ac
+===================================================================
+--- a/src/libobjc/configure.ac
++++ b/src/libobjc/configure.ac
+@@ -108,22 +108,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_noncanonical)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libquadmath/configure.ac
+===================================================================
+--- a/src/libquadmath/configure.ac
++++ b/src/libquadmath/configure.ac
+@@ -93,22 +93,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libssp/configure.ac
+===================================================================
+--- a/src/libssp/configure.ac
++++ b/src/libssp/configure.ac
+@@ -170,22 +170,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libstdc++-v3/acinclude.m4
+===================================================================
+--- a/src/libstdc++-v3/acinclude.m4
++++ b/src/libstdc++-v3/acinclude.m4
+@@ -840,21 +840,8 @@
+   # Calculate glibcxx_toolexecdir, glibcxx_toolexeclibdir
+   # Install a library built with a cross compiler in tooldir, not libdir.
+   if test x"$glibcxx_toolexecdir" = x"no"; then
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      glibcxx_toolexecdir='${exec_prefix}/${host_alias}'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  glibcxx_toolexeclibdir='${toolexecdir}/lib'
+-	  ;;
+-	*)
+-	  glibcxx_toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      glibcxx_toolexecdir='${libdir}/gcc/${host_alias}'
+-      glibcxx_toolexeclibdir='${libdir}'
+-    fi
++    glibcxx_toolexecdir='${libdir}/gcc/${host_alias}'
++    glibcxx_toolexeclibdir='${libdir}'
+     multi_os_directory=`$CXX -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/zlib/configure.ac
+===================================================================
+--- a/src/zlib/configure.ac
++++ b/src/zlib/configure.ac
+@@ -91,21 +91,9 @@
+ 
+ AC_CHECK_HEADERS(unistd.h)
+ 
+-if test -n "$with_cross_host" &&
+-   test x"$with_cross_host" != x"no"; then
+-  toolexecdir='$(exec_prefix)/$(target_alias)'
+-  case ${with_toolexeclibdir} in
+-    no)
+-      toolexeclibdir='$(toolexecdir)/lib'
+-      ;;
+-    *)
+-      toolexeclibdir=${with_toolexeclibdir}
+-      ;;
+-  esac
+-else
+-  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-  toolexeclibdir='$(libdir)'
+-fi
++toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++toolexeclibdir='$(libdir)'
++
+ if test "$GCC" = yes && $CC -print-multi-os-directory > /dev/null 2>&1; then
+   multiosdir=/`$CC -print-multi-os-directory`
+   case $multiosdir in
+Index: b/src/libatomic/configure.ac
+===================================================================
+--- a/src/libatomic/configure.ac
++++ b/src/libatomic/configure.ac
+@@ -96,22 +96,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libsanitizer/configure.ac
+===================================================================
+--- a/src/libsanitizer/configure.ac
++++ b/src/libsanitizer/configure.ac
+@@ -40,22 +40,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
+Index: b/src/libvtv/configure.ac
+===================================================================
+--- a/src/libvtv/configure.ac
++++ b/src/libvtv/configure.ac
+@@ -72,22 +72,8 @@
+     toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+     ;;
+   no)
+-    if test -n "$with_cross_host" &&
+-       test x"$with_cross_host" != x"no"; then
+-      # Install a library built with a cross compiler in tooldir, not libdir.
+-      toolexecdir='$(exec_prefix)/$(target_alias)'
+-      case ${with_toolexeclibdir} in
+-	no)
+-	  toolexeclibdir='$(toolexecdir)/lib'
+-	  ;;
+-	*)
+-	  toolexeclibdir=${with_toolexeclibdir}
+-	  ;;
+-      esac
+-    else
+-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+-      toolexeclibdir='$(libdir)'
+-    fi
++    toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
++    toolexeclibdir='$(libdir)'
+     multi_os_directory=`$CC -print-multi-os-directory`
+     case $multi_os_directory in
+       .) ;; # Avoid trailing /.
diff --git a/debian/rules.patch b/debian/rules.patch
index 8aac9ca..851131e 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -203,7 +203,11 @@ endif
 
 ifeq ($(DEB_CROSS),yes)
   debian_patches += cross-fixes
-  debian_patches += cross-install-location
+  ifeq ($(with_deps_on_target_arch_pkgs),yes)
+    debian_patches += cross-ma-install-location
+  else
+    debian_patches += cross-install-location
+  endif
 endif
 
 debian_patches += hurd-amd64
-- 
2.42.0

