Add documentation about howto build cross toolchain.

git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@28 4407c894-4637-0410-b4f5-ada5f102cad1
This commit is contained in:
Kai Tietz 2007-08-20 13:07:37 +00:00
parent 917ce75cdd
commit 8124b31743

View File

@ -0,0 +1,74 @@
HowTo build x86_64-pc-mingw32 cross-compiler
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>
This document describes how to build the amd64 mingw32 gcc toolchain as cross-compiler on cygwin and unix shells.
1. Download packages
The following packages you need to download
- binutils 2.17.50 snapshot released after or equal to the 1st of Junly 2007.
- gcc version 4.3 snapshort released after or equal to the 1st of Junly 2007.
- current mingw-w64-snapshot available on the sourceforge 'mingw-w64'
Now extract these tarballs in an 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. Choice of kind of build
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 <install-root> is for build kind I '/usr/local' and for kind II your specified
path.
Building binutils cross toolchain:
Step 1) Enter into the binutils root folder and generate a folder within (e.g.
'build'). Than enter into it.
Step 2 for I) Type '../configure --target=x86_64-pc-mingw32'
Step 2 for II) Type '../configure --target=x86_64-pc-mingw32 --prefix=/vol/m --with-sysroot=/vol/m'.
May change the pathes '/vol/m' to pathes you desire.
Step 3) Type 'make'
Step 4) Type 'make install'
Now copy the content of the folder 'trunk/mingw-w64-headers/include' into your '<install-root>/x86_64-pc-mingw32/include'
folder. If you choose the configuration variant II create in <install-root> a symbolic link named
'mingw' pointing to the directory 'x86_64-pc-mingw32'.
Building the gcc core cross-compiler(s):
Step 0) If you have to patch gcc, may do this here. There are some patches necessary, if you want
to cross compile libiberty with early header sets, or if you want to use gfortran. These patches
are 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'). Than may you
apply optional patches to gcc (currently there is a patch file for gcc needed to fix some
problems about autoimported variables, libiberty and the fortan compiler).
Step 2 for I) Now enter into your created folder (e.g. 'build') and type
'../configure --target=x86_64-pc-mingw32'.
Step 2 for II) Now enter into your created folder (e.g. 'build') and type
'../configure --target=x86_64-pc-mingw32 --prefix=/vol/m --with-sysroot=/vol/m'.
May change the pathes '/vol/m' to pathes you desire.
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.
Building the crt:
Step 0) If you are using variant II, may you need to adjust the 'prefix' value in Makefiles.
Step 1) Enter into the trunk/mingw-w64-crt root directory.
Step 2) Type 'make'
Step 3) Copy all generated *.a files out of the 'mklibs' folder into the
'<install-root>/x86_64-pc-mingw32/lib' folder.
Step 4) Copy out of the root folder to the '<install-root>/x86_64-pc-mingw32/lib' folder the files
crt1.o, crt2.o, lib*.a, *.dll, crtbegin.o, crtend.o, dllcrt1.o, dllcrt2.o, binmode.o, txtmode.o,
CRT_fp8.o, and the CRT_fp10.o.
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'