| You may run these scripts to build a UEFI/PI gcc cross compiler. | |
| Cross compilers built with these scripts are tested on | |
| Linux, OS X and Cygwin. | |
| Please note that you may need to modify your edk2 tree's Conf/tools_def.txt | |
| file to point to the location where you installed the cross compiler. | |
| === tianoCross-gcc-4.1 === | |
| This script will build an x86 (ia32) cross compiler. | |
| The results of this script are very similar to the 'mingw' cross compiler | |
| which is commonly available on linux and OS X. But, since the cross | |
| compiler produced by this script is tested, it is the only 'supported' way | |
| to build UEFI/PI images. | |
| To use this script, you will need: | |
| * A recent version (3.0 or later should be fine) of gcc that is able to produce | |
| executables for the machine that you want to run this compiler on (the host | |
| machine). | |
| * wget or curl | |
| * tar | |
| * bzip | |
| * gzip | |
| * bash | |
| * As well as (possibly) others tools and development packages | |
| === x86_64-mingw-gcc-build.py == | |
| This script will build an x86_64 (x64/Intel 64/amd64) cross compiler. | |
| To use this script, you will need: | |
| * A recent version (3.0 or later should be fine) of gcc that is able to | |
| produce executables for the machine that you want to run this compiler | |
| on (the host machine). | |
| * Python 2.5 | |
| * texinfo | |
| * bison | |
| * flex | |
| * libmpfr | |
| * libgmp | |
| * As well as (possibly) others tools and development packages | |
| === Ubuntu Notes === | |
| On Ubuntu, the following command should install all the necessary build | |
| packages to utilize the x86_64-mingw-gcc-build.py script: | |
| sudo apt-get install build-essential texinfo bison flex libgmp3-dev libmpfr-dev | |
| === CYGWIN Notes === | |
| You should setup cygwin to use binmode on all mounts. When you initially | |
| install cygwin it gives you the choice of Unix file mode (recommended) or DOS | |
| file mode. Unix mode will cause all the cygwin directories to be mounted in | |
| binmode, while DOS will mount the dirs in textmode. Here is an example of a | |
| cygwin install where the dirs are (properly) mounted in binmode. | |
| C:\cygwin\bin on /usr/bin type user (binmode) | |
| C:\cygwin\lib on /usr/lib type user (binmode) | |
| c:\workspace on /workspace type system (binmode) | |
| C:\cygwin on / type user (binmode) | |
| If you use textmode, it is likely that the build will fail in a way that is | |
| hard to debug. | |
| Cygwin is pretty slow, so it is not recommended for large builds. | |