Tue Mar 1 08:41:08 EET 2011 Sergei Trofimovich * configure: triplet: accept i486 CPU (and more), more vendors and OSes Gentoo has interesting ports: - freebsd with following triplet: ./configure --build=i686-gentoo-freebsd8 --host=i686-gentoo-freebsd8 --host=i686-gentoo-freebsd8 should be recognized as 'i386-unknown-freebsd' - 'pc' vendor along with non-'i386' is very common: ./configure --build=i486-pc-linux-gnu --i486-pc-linux-gnu --host=i486-pc-linux-gnu ./configure --build=i686-pc-linux-gnu --i686-pc-linux-gnu --host=i686-pc-linux-gnu should be recognized as 'i386-unknown-linux' Patch adds: - 'pc' vendor (maps to 'unknown') - 'gentoo' vendor (maps to 'unknown') - 'i486', 'i586', 'i686' CPUs (maps to 'i386') - 'freebsd8' OS (maps to 'freebsd') diff -rN -u old-ghc/aclocal.m4 new-ghc/aclocal.m4 --- old-ghc/aclocal.m4 2011-03-04 13:26:18.512776569 +0200 +++ new-ghc/aclocal.m4 2011-03-04 13:26:18.606776569 +0200 @@ -1458,7 +1458,7 @@ hppa*) $2="hppa" ;; - i386) + i386|i486|i586|i686) $2="i386" ;; ia64) @@ -1511,7 +1511,15 @@ # -------------------------------- # converts vendor from gnu to ghc naming, and assigns the result to $target_var AC_DEFUN([GHC_CONVERT_VENDOR],[ -$2="$1" + case "$1" in + pc|gentoo) # like i686-pc-linux-gnu and i686-gentoo-freebsd8 + $2="unknown" + ;; + *) + #pass thru by default + $2="$1" + ;; + esac ]) # GHC_CONVERT_OS(os, target_var) @@ -1526,6 +1534,9 @@ freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku) $2="$1" ;; + freebsd8) # like i686-gentoo-freebsd8 + $2="freebsd" + ;; *) echo "Unknown OS $1" exit 1 Tue Mar 1 21:40:18 EET 2011 Sergei Trofimovich * configure: amend sanity check As we perform some mangling of original --build/--host/--target params we should check the result of mangling against desired triplet, not originally passed by user. Patch also adds mangled triplets to the output. diff -rN -u old-ghc/configure.ac new-ghc/configure.ac --- old-ghc/configure.ac 2011-03-04 13:26:20.005776569 +0200 +++ new-ghc/configure.ac 2011-03-04 13:26:20.319776569 +0200 @@ -288,7 +288,7 @@ # Verify that the installed (bootstrap) GHC is capable of generating # code for the requested build platform. -if test "$build" != "$bootstrap_target" +if test "$BuildPlatform" != "$bootstrap_target" then echo "This GHC (${WithGhc}) does not generate code for the build platform" echo " GHC target platform : $bootstrap_target" @@ -296,6 +296,10 @@ exit 1 fi +echo "GHC build : $BuildPlatform" +echo "GHC host : $HostPlatform" +echo "GHC target : $TargetPlatform" + AC_SUBST(BuildPlatform) AC_SUBST(HostPlatform) AC_SUBST(TargetPlatform)