HowTo build x86_64-w64-mingw32 cross-compiler

NOTE: x86_64-pc-mingw32 is now replaced by x86_64-w64-mingw32. The change allows for Mingw64 to be independent of Mingw32.
This is new for GCC 4.5.

All default libraries work! We are now in a very functional beta stage.

Date /		Version /	Author
2007-07-31  	1.0		Kai Tietz <Kai.Tietz at onevision.com>
2007-08-20	1.1		Kai Tietz <Kai.Tietz at onevision.com>
2007-08-21	1.2		NightStrike <nightstrike at gmail.com>
2007-10-01	1.3		NightStrike <nightstrike at gmail.com>
2007-11-27	1.4		NightStrike <nightstrike at gmail.com>
2009-05-31	1.5		Xenofears <xenofears at gmail.com>


This document describes how to build the amd64 Mingw32 gcc toolchain as a cross-compiler on Cygwin, MinGW MSys, and Unix shells.
Cygwin 1.5 and 1.7 currently in beta testing are both supported. This document recommends and assumes Bash (for Cygwin, Unix,)
or MSys' core sh default shells are used.

0. Requirements

On a clean cygwin install, you will need the following additional packages installed:
	A complete gcc toolchain for the host system
	bison
	diffutils
	flex
	make
	gmp 4.2.4 or newer (4.3.1 recommended) [found on Cygwin setup under math]
	mpfr 2.3.1 or newer (2.4.1 recommended) [found on Cygwin setup under math]
	perl (optional for pod2man)
	tar & gzip/bzip
	
optional for source download / version management:
	cvs
	subversion
	wget

optional for optimization enhancements:
	ppl 0.10 or newer
	cloog-ppl 0.15 or newer (must be ppl) 
	mpc 0.6 or newer

If your host OS is Vista, you must install SP1 or SP2!
	
To build with MSys (Minimal SYStem for win32), download and install functional MinGW (gcc toolchain), MSys (sh shell), Bison, and Flex.
Win32 installers to use with mingw msys available for download at http://sourceforge.net/project/showfiles.php?group_id=23617	
GMP & MPFR sources may be placed in the gcc source tree root in directories with their names and they will be built automatically
by gcc's configure (as static libs) with no further action required.


1. Download packages

You need to download the following packages:

	- binutils 2.19 release for stable, or 2.19.51+ or newer or latest snapshot 2.19.51 for experimental as of 06-01-2009.
	- gcc version 4.4 release for stable, or latest gcc 4.4 (4.4.1) or 4.5 snapshot for experimental as of 06-01-2009.
	  (gcc 4.5 recommended for proper support for the new -w64-, see note above.) gcc 4.3 support is no longer maintained. 
	- current mingw-w64 release or snapshot available at https://sourceforge.net/projects/mingw-w64 (snapshot recomended)

Official releases of gcc and binutils may be downloaded from a GNU FTP mirror from http://www.gnu.org/prep/ftp.html
GCC snapshots may be found at ftp://gcc.gnu.org/pub/gcc/snapshots/
Binutils snapshots may be found at ftp://sourceware.org/pub/binutils/snapshots
	
Now extract these tarballs to a temporary folder. E.g. use ~/w64src. For the tarballs with
extension .tar.gz or .tgz use the following command to extract : tar -xzf <tarball>'.  For
tarballs with extension .tar.bz2 or .tbz2 use the command 'tar -xjf <tarball>'.
There are now three folders within you temporary folder: trunk, binutils, and gcc.



2. Build type options

You have at least two different choices to build the crosscompiler toolchain:
 I)  Using standard settings of configure.
 II) Using --prefix and --with-sysroot configuration

  I assume that '/usr/local/' is the <install-root> for build type I, the path specified using --with-sysroot is 
  the root for type II.  For this example, it will be set to '/mypath'.



3. Building binutils cross toolchain:

  Step 1) Enter into the binutils root folder and generate a folder within (e.g.
	'build'). Then enter into it.
  Step 2 for I) Type '../configure --target=x86_64-w64-mingw32'
  Step 2 for II) Type '../configure --target=x86_64-w64-mingw32 --prefix=/mypath --with-sysroot=/mypath'.
  Step 3) Type 'make'
  Step 4) Type 'make install'

  Create in /usr/local if Type I or /mypath if Type II a symbolic link named 'mingw' pointing to the directory 'x86_64-w64-mingw32'. 
  For instance:
    $ cd /mypath [or cd /usr/local if Type I]
    $ ln -s x86_64-w64-mingw32 mingw
  For Type I this shouldn't be necessary, but it does come up on a few very rare exceptions.
	
  Note:
  The header-set and crt contains the standard-c and the windows (w32api) specific files. Therefore it is not necessary
  to install an additional package. Simply use the '-mwindows' option for windows GUI applications. By default '-mconsole'
  is used and produce console applications. Also you can use the '-mdll' option for generating shared objects (dll).


4. Building the gcc core cross-compiler(s):

  Step 0) If you have to patch gcc, may do this here. There are some optional patches, available by the
		  'gcc-patches' mailing list at 'gcc.gnu.org' or by taking a look at mingw.org or mingw-w64 sites.
  Step 1) Enter into the gcc root folder and generate a folder within (e.g. 'build'), then enter it. 
  Step 2 for I) Type: '../configure --target=x86_64-w64-mingw32'.
  Step 2 for II) Type: '../configure --target=x86_64-w64-mingw32 --prefix=/mypath --with-sysroot=/mypath'.
  Step 3) Type 'make all-gcc'
  Step 4) Type 'make install-gcc'

  Now the core stuff of gcc is present and we can build the crt itself.


5. Building the crt:

  Step 0) Place the gcc that you just installed into your PATH. 
  Step 0 for I) Type PATH="$PATH:/usr/local/bin" ; export PATH
  Step 0 for II) Type PATH="$PATH:/mypath/bin" ; export PATH
  Step 1) Enter into the trunk/mingw-w64-crt root directory and generate a
	directory within (e.g. 'build'), and enter into it.
  Step 2 for I) Type '../configure --host=x86_64-w64-mingw32'
  Step 2 for II) Type '../configure --host=x86_64-w64-mingw32 --prefix=/mypath --with-sysroot=/mypath'
  Step 3) Type 'make'
  Step 4) Type 'make install'
  
  Note: Currently there is no dll build. As long as we use static crt libraries we won't need a ctor/dtor dll.



6. Now you are ready to build the rest of gcc:

  Step 1) Enter into your generated folder within your gcc root source folder.
  Step 2) Type 'make'
  Step 3) Type 'make install'
  
  
7. Update your path and use your new cross-compiler:
 
	Note: Do not add the directories below to the beginning of your path unless you want the cross-compiler to be used by default,
			effectively making native Mingw/Cygwin/unix builds not possible. 
	Step 1) Update your path with the following:
			(See Step 5 for syntax. Add to .bashrc in your /home/user account or to /etc/profile if MinGW MSys.)
	for I) Add /usr/local/bin (if necessary), /usr/local/x86_64-pc-w64-mingw32/bin, and /usr/local/libexec/gcc/x86_64-w64-mingw32/4.X.X/
	for II) Add /mypath/bin, /mypath/x86_64-w64-mingw32/bin, and /mypath/local/libexec/gcc/x86_64-w64-mingw32/4.X.X/
		   Where 4.X.X is the version of gcc you installed (go to the directory and check, latest 4.4 snapshots are 4.4.1 now)
		   The libexec path shouldn't be necessary, but it does come up on occasion.
	
You are finished. To use your cross-compiler, simply use --host=x86_64-w64-mingw32 as a configure option.
Be sure to -I/usr/local/include or -I/mypath/include and -L/usr/local/lib or -L/mypath/lib to your cflags to link your builds. 
Often you must --enable-shared if you want DLL's as oppoosed to static libs, but it is not always possible, and the flag doesn't always work.
