Fix build-mingw64-toolchain.sh
1) Default to use later gcc, gmp, mpc, and mpfr
2) HOST_BINPREFIX can be directory: eg.
--binprefix=${HOME}/mydroid/prebuilts/tools/gcc-sdk/
3) --force-build now works
Change-Id: If9c3a9bea9dc14956ab1b535fbc1a05e75fa9db9
diff --git a/build/tools/build-mingw64-toolchain.sh b/build/tools/build-mingw64-toolchain.sh
index ec155c5..a05e37f 100755
--- a/build/tools/build-mingw64-toolchain.sh
+++ b/build/tools/build-mingw64-toolchain.sh
@@ -132,14 +132,16 @@
echo "WARNING: WARNING: WARNING: THIS SCRIPT PROBABLY ONLY WORKS ON LINUX!!"
fi
-GMP_VERSION=5.0.4
-MPFR_VERSION=3.1.0
-MPC_VERSION=0.8.2
+GMP_VERSION=5.0.5
+MPFR_VERSION=3.1.1
+MPC_VERSION=1.0.1
BINUTILS_VERSION=2.22
-GCC_VERSION=4.6.3
+GCC_VERSION=4.7.2
# Need at least revision 5166
# "stdio.h (asprintf, vasprintf): Disable definitions stubs"
# as otherwise gold can't be built.
+# Only work up to svn@5177. Better use
+# https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/stable/v2.x
MINGW_W64_VERSION=svn@5166
JOBS=$(( $NUM_CORES * 2 ))
@@ -278,9 +280,19 @@
# Determine bitness of host architecture
PROBE_CC=${CC:-gcc}
-if [ "$HOST_BINPREFIX" ]; then
- PROBE_CC=$HOST_BINPREFIX-gcc
+if [ -n "$HOST_BINPREFIX" ]; then
+ # If $HOST_BINPREFIX is a directory but not ends with '/', append '/'.
+ # Otherwise, append '-'.
+ if [ -d "$HOST_BINPREFIX" ] ; then
+ if [ -n "${HOST_BINPREFIX##*/}" ] ; then
+ HOST_BINPREFIX="${HOST_BINPREFIX}/"
+ fi
+ else
+ HOST_BINPREFIX="${HOST_BINPREFIX}-"
+ fi
+ PROBE_CC=${HOST_BINPREFIX}gcc
fi
+echo "Using GCC: $PROBE_CC"
echo "int main() { return 0; }" > $TEMP_DIR/test-host-cc.c
$PROBE_CC -c $TEMP_DIR/test-host-cc.c -o $TEMP_DIR/test-host-cc.o > /dev/null
fail_panic "Host compiler doesn't work: $PROBE_CC"
@@ -356,6 +368,9 @@
mkdir -p $SRC_DIR
mkdir -p $STAMP_DIR
+INSTALL_DIR=$TEMP_DIR/install-$HOST_TAG/$TARGET_TAG
+BUILD_DIR=$TEMP_DIR/build-$HOST_TAG
+
if [ "$FORCE_BUILD" ]; then
rm -f $STAMP_DIR/*
rm -rf $INSTALL_DIR
@@ -363,9 +378,6 @@
fi
# Make temp install directory
-INSTALL_DIR=$TEMP_DIR/install-$HOST_TAG/$TARGET_TAG
-BUILD_DIR=$TEMP_DIR/build-$HOST_TAG
-
mkdir -p $INSTALL_DIR
mkdir -p $BUILD_DIR
@@ -429,13 +441,13 @@
local BINPREFIX=$1
if [ "$BINPREFIX" ]; then
- CC=$BINPREFIX-gcc
- CXX=$BINPREFIX-g++
- LD=$BINPREFIX-ld
- AS=$BINPREFIX-as
- AR=$BINPREFIX-ar
- RANLIB=$BINPREFIX-ranlib
- STRIP=$BINPREFIX-strip
+ CC=${BINPREFIX}gcc
+ CXX=${BINPREFIX}g++
+ LD=${BINPREFIX}ld
+ AS=${BINPREFIX}as
+ AR=${BINPREFIX}ar
+ RANLIB=${BINPREFIX}ranlib
+ STRIP=${BINPREFIX}strip
export CC CXX LD AS AR RANLIB STRIP
elif [ "$OS" = darwin ]; then
# Needed on OS X otherwise libtool will try to use gcc and $BUILD_CFLAGS