mb_gnu: Intial commit for Gcc-4.6.2 sources and toolchain build scripts
[microblaze-gnu.git] / README
bloba8e2f3e80c7ac3ec0ab5515ef190fc76e880e86c
3 Toolchain directory
5   mb_gnu_14.3_early
6      |
7      |---------> src
8      |            |
9      |            |----->gcc,gdb,newlib,binutils,eglibc,linux (source files)
10      |            |-----> microblaze specific library related files (newlib-variant-links  newlib-variants-be  newlib-variants-le)
11      |
12      |
13      |
14      |---------> Standalone toolchain build scripts (ex: build_binutils.sh, build_gdb.sh, .etc)  
15      |
16      |---------> Crosstool-ng to build microblaze linux toolchains
17      |   
18      |---------> binaries (contain linux toolchain binaries)
19      |
20      |---------> README
22 Standalone-toolchain
24    Building Standalone toolchain requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+ libraries
26    A. Steps to build Standalone toolchain (for linux)
28   
29             1. Run "source build_all.sh" in bash shell it will run all the required scripts 
31                              (or)
33             2.  There are 6 steps in building the standalone tool chain. Following steps should be executed in the same order.
35                 a. Building binutils    
36                    Run ./build_binutils.sh
38                 b. Building gcc intial phase
39                    Run ./build_gcc_bootstrap.sh
41                 c. Building Newlib
42                    Run ./build_newlib.sh
44                 d. Building gcc second phase
45                    Run ./build_gcc_release_updated.sh
47                 f. Building gdb
48                    Run ./build_gdb.sh
50                 g. Building newlib variants
51                    Run ./build_newlib_variants.sh
52       
53            3. On the successful completion of build process a new directory named gnu is created which contains the microblaze tool chain for linux platform. 
54         
55            NOTE: These scripts will generate log files in build folder. We can refer them if we have any issues during build
56            
57   
58   B. Building standalone tool chain for NT platform (built on linux platform):
59                 
60           
61            1.   This tool chain is built on linux machine using Canadian cross compilation technique.
63            2. To build microblaze tool chain using Canadian cross compilation it requires standalone microblaze tool chain built on linux platform and mingw toolchain              Hence for building the NT tool chain there is a need to build the microblaze tool chain in linux platform using above steps.
65            3.   scripts used to build Standalone NT toolchain
66                      . mingw_build_binutils.sh
67                      . mingw_build_gcc.sh
68                      . mingw_build_newlib.sh
69                      . mingw_build_gcc_release.sh
70                      . mingw_build_newlib_variants.sh
72            4.   Run the following commands in bash shell:
73                 ./link.sh <creates static links for standalone tool chain on linux platform> 
74                     Add the location to the PATH variable using the following command export PATH=$PWD/tools/bin:$PATH
76            5. Run windows_all.sh or run scripts of step3 in the same order
78                 Nt Tool chain is built in release/mingw folder.
80         
81         
82 Linux-toolchain
83          
84    Steps to build Linux toolchain (built on linux platform)
86           1. We need to configure crosstool-ng. Go to crosstool-ng folder (cd crosstool-ng)
88              ./configure --prefix=$HOME/ctng
89              make
90              make install
91              export PATH=$PATH:$HOME/ctng/bin
93           2. Create a temporary folder for build cross toolchains
94              mkdir toolchain-build
95              cd toolchain-build
96   
97           3. copy required config file from sample folder to temp folder. (sample configs are explained below) 
98   
99                     ex: cp ../samples/microblazeel-xilinx-linux-gnu/crosstool.config .
100                         mv crosstool.config .config
102            4. then run "ct-ng menuconfig"
104                 In  menuconfig go to Paths and misc options >> common Root of Source Directory need to specify toolchain source folder
106            5. then run "ct-ng build" to build complete toolchain
107         
108         
109          There are 4 config files useful to build different varaints of linux toolchain
110         
111          1. microblazeel-xilinx-linux-gnu
112              To build this varaiant of toolchain we need to use "crosstool-ng/samples/microblazeel-xilinx-linux-gnu/crosstool.config" file in step-3
114          2. microblaze-xilinx-linux-gnu
115              To build this varaiant of toolchain we need to use "crosstool-ng/samples/microblaze-xilinx-linux-gnu/crosstool.config" file in step-3
117          3. i686-w64-mingw32_microblazeel-xilinx-linux-gnu
118              pre-requisites 
119           -> mingw toolchain
120                    mingw toolchain is avaiable at "crosstool-ng/i686-pc-mingw32" folder
121           -> microblazeel-xilinx-linux-gnu toolchain
122          To build this varaiant of toolchain we need to use "crosstool-ng/samples/i686-w64-mingw32_microblazeel-xilinx-linux-gnu/crosstool.config" file in step-3
124          4. i686-w64-mingw32_microblaze-xilinx-linux-gnu
125              pre-requisites 
126                   -> mingw toolchain
127                            mingw toolchain is avaiable at "crosstool-ng/i686-pc-mingw32" folder
128                   -> microblaze-xilinx-linux-gnu toolchain
129          To build this varaiant of toolchain we need to use "crosstool-ng/samples/i686-w64-mingw32_microblaze-xilinx-linux-gnu/crosstool.config" file in step-3
130                  
131         After sucessful compilation toolchain is found in bld folder which is present at same crosstool-ng level(mb_gnu_13.4_early/bld )         
134   If you need anymore informaion then mail us nmekala@xilinx.com
135                  
136