Hello,

r29347 platform detection changes to config.sub break i686-w64-mingw32
correctly detection and generation of configuration file.

Steps to reproduce in a Linux box:

1) Download mingw-w32-1.0-bin_i686-linux_20100917.tar.bz2 from
mingw-w64 project:

wget http://prdownloads.sourceforge.net/mingw-w64/mingw-w32-1.0-bin_i686-linux_20100917.tar.bz2

2) extract in a folder (eg ~/mingw/w32)

3) Add the folder to the PATH

export PATH=~/mingw/w32/bin:$PATH

4) Checkout latest Ruby trunk and build:

autoconf
mkdir build32 && cd build32
sh ../configure --enable-shared --disable-install-doc --host=i686-w64-mingw32

5) See the incorrectly generated configuration file:

.ext/include/x86_64-mingw64/ruby/config.h updated

===

Some notes:

This config.sub alteration:

i?86-w64)
  basic_machine=x86_64-pc

Is incorrect. w64 is vendor, as is 'pc' a generic vendor. With this
change i?86 is identified as 64bits when is not, is 32bits (i686).

Wonder why diverge from GCC triplet and alter config.sub for just
support mingw64 shorthand which is not a valid MinGW vendor.

And the correct triplet:

http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS
http://gcc.gnu.org/install/specific.html#windows

Please see the discussion outlined here:

http://sourceforge.net/mailarchive/message.php?msg_id=AANLkTikzVW_UqbgrmUCAKT-_-ArQtzQnMy0%2Buk3wWFou%40mail.gmail.com

Specially all the back and forth between mingw32 and mingw64 to
identify mingw-w64 work:

http://sourceforge.net/mailarchive/message.php?msg_name=4C519892.7080306%40users.sourceforge.net
http://sourceforge.net/mailarchive/message.php?msg_name=AANLkTik-A6GXyGVrvWAAO_b3fRzC04LfinEc-6RokiJ1%40mail.gmail.com

Thank you.
-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupy