1 You may run these scripts to build a UEFI/PI gcc cross compiler. 2 3 Cross compilers built with these scripts are tested on 4 Linux, OS X and Cygwin. 5 6 Please note that you may need to modify your edk2 tree's Conf/tools_def.txt 7 file to point to the location where you installed the cross compiler. 8 9 === tianoCross-gcc-4.1 === 10 11 This script will build an x86 (ia32) cross compiler. 12 13 The results of this script are very similar to the 'mingw' cross compiler 14 which is commonly available on linux and OS X. But, since the cross 15 compiler produced by this script is tested, it is the only 'supported' way 16 to build UEFI/PI images. 17 18 To use this script, you will need: 19 20 * A recent version (3.0 or later should be fine) of gcc that is able to produce 21 executables for the machine that you want to run this compiler on (the host 22 machine). 23 * wget or curl 24 * tar 25 * bzip 26 * gzip 27 * bash 28 * As well as (possibly) others tools and development packages 29 30 === x86_64-mingw-gcc-build.py == 31 32 This script will build an x86_64 (x64/Intel 64/amd64) cross compiler. 33 34 To use this script, you will need: 35 36 * A recent version (3.0 or later should be fine) of gcc that is able to 37 produce executables for the machine that you want to run this compiler 38 on (the host machine). 39 * Python 2.5 40 * texinfo 41 * bison 42 * flex 43 * libmpfr 44 * libgmp 45 * As well as (possibly) others tools and development packages 46 47 === Ubuntu Notes === 48 49 On Ubuntu, the following command should install all the necessary build 50 packages to utilize the x86_64-mingw-gcc-build.py script: 51 52 sudo apt-get install build-essential texinfo bison flex libgmp3-dev libmpfr-dev 53 54 === CYGWIN Notes === 55 56 You should setup cygwin to use binmode on all mounts. When you initially 57 install cygwin it gives you the choice of Unix file mode (recommended) or DOS 58 file mode. Unix mode will cause all the cygwin directories to be mounted in 59 binmode, while DOS will mount the dirs in textmode. Here is an example of a 60 cygwin install where the dirs are (properly) mounted in binmode. 61 62 C:\cygwin\bin on /usr/bin type user (binmode) 63 C:\cygwin\lib on /usr/lib type user (binmode) 64 c:\workspace on /workspace type system (binmode) 65 C:\cygwin on / type user (binmode) 66 67 If you use textmode, it is likely that the build will fail in a way that is 68 hard to debug. 69 70 Cygwin is pretty slow, so it is not recommended for large builds. 71 72