#! /bin/sh -e

# DP: disable some biarch libraries for biarch builds

if [ $# -eq 3 ] && [ "$2" = '-d' ]; then
    pdir="-d $3"
    dir="$3/"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
       -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;;
       -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;;
	*)
		echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
		exit 1;;
esac

exit 0

--- config-ml.in.orig	2007-12-01 10:09:04.533972767 +0100
+++ config-ml.in	2007-12-01 10:21:50.625529084 +0100
@@ -301,6 +301,11 @@
 	  done
 	fi
 	;;
+i[34567]86-*-*)
+	case " $multidirs " in
+	  *" 64 "*) ac_configure_args="${ac_configure_args} --host=x86_64-linux-gnu"
+	esac
+	;;
 m68*-*-*)
 	if [ x$enable_softfloat = xno ]
 	then
@@ -472,9 +477,36 @@
 	    esac
 	  done
 	fi
+	case " $multidirs " in
+	  *" 64 "*) ac_configure_args="${ac_configure_args} --host=powerpc64-linux-gnu"
+	esac
+	;;
+s390-*-*)
+	case " $multidirs " in
+	  *" 64 "*) ac_configure_args="${ac_configure_args} --host=s390x-linux-gnu"
+	esac
 	;;
 esac
 
+if [ -z "$biarch_multidir_names" ]; then
+  biarch_multidir_names="libiberty libstdc++-v3 libgfortran libmudflap libssp libffi libobjc libgomp"
+  echo "WARNING: biarch_multidir_names is unset. Use default value:"
+  echo "  $biarch_multidir_names"
+fi
+ml_srcbase=`basename $ml_realsrcdir`
+old_multidirs="${multidirs}"
+multidirs=""
+for x in ${old_multidirs}; do
+    case " $x " in
+	" 32 "|" n32 "|" 64 " )
+	case "$biarch_multidir_names" in
+	    *"$ml_srcbase"*) multidirs="${multidirs} ${x}" ;;
+	esac
+	;;
+	*) multidirs="${multidirs} ${x}" ;;
+    esac
+done
+
 # Remove extraneous blanks from multidirs.
 # Tests like `if [ -n "$multidirs" ]' require it.
 multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'`
@@ -852,9 +884,20 @@
 	fi
     fi
 
+    ml_configure_args=
+    for arg in ${ac_configure_args}
+    do
+      case $arg in
+      *CC=*)  ml_configure_args=${ml_config_env} ;;
+      *CXX=*) ml_configure_args=${ml_config_env} ;;
+      *GCJ=*) ml_configure_args=${ml_config_env} ;;
+      *) ;;
+      esac
+    done
+
     if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \
 	--with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \
-	${ac_configure_args} ${ml_config_env} ${ml_srcdiroption} ; then
+	${ac_configure_args} ${ml_configure_args} ${ml_srcdiroption} ; then
       true
     else
       exit 1
