2009-09-15 Øyvind Harboe <oyvind.harboe@zylin.com>
[nios2ecos.git] / tools / gcc4libstdxx / simplegcc.txt
blob497882a3c6c53603b278fcfd2a5275105a7801e4
1 Crude instructions on how to build Nios GCC 4.1 toolchain with libstdc++ w/POSIX threads
2 ========================================================================================
3 Warning! GCC 4.1 is a bit rough around the edges, so if you can get hold of
4 a binary GCC toolchain, you'll save yourself quite a bit of time. 
7 1. First build eCos w/POSIX threads
9 cd nios2ecos
10 . nios2_env.sh
11 mkdir ~/buildgcc
12 cd ~/buildgcc
13 mkdir ecos
14 nios2configgen --ptf=/home/oyvind/workspace/nios2ecos/neek/neek.ptf --cpu=cpu
15 ecosconfig new nios2_neek default
16 ecosconfig import $NIOS_ECOS/../tools/gcc4libstdxx/headers.ecm
17 ecosconfig tree
18 make headers
19 make 
21 NB!!!! the nios2ecos make files are broken in that "make headers" does not create
22 cyg/hal/system.h
24 2. Build binutils
26 sudo apt-get install gobjc++
27 tar -xjvf src/binutils-4.1-176.tar.bz2
29 export PATH=`pwd`/install/bin:$PATH
30 mkdir build
31 cd build
32 ../binutils-2.17.50/configure --prefix=`pwd`/../install --target=nios2-elf  --disable-shared --disable-werror
33 make 
34 make install
36 if you get error message about missing elf32-target.h, type:
38 cd bfd
39 make elf32-target.h
40 cd ..
42 2. Build GCC using eCos header files
44 tar -xjvf src/gcc-4.1-176.tar.bz2
45 cd gcc-4.1-176
47 ../gcc-4.1/configure --prefix=`pwd`/../install --target=nios2-elf --enable-languages=c,c++ --with-gnu-ld --disable-shared --disable-nls --enable-threads=posix --with-gnu-as --enable-libstdcxx-allocator=malloc --enable-cstdio=stdio --with-newlib  --disable-unix98 --with-headers=`pwd`/../ecos/install/include --enable-multilib --disable-libstdcxx-pch --enable-sjlj-exceptions --disable-werror
48 make >errors.txt 2>&1
50 Problems: c++locale.c does has fallback code for strtof that isn't supported, modify c++locale.c to #if 0 the strtof path.
53 3. Build GDB
55 ../gdb-wrs/configure --prefix=`pwd`/../install --target=nios2-elf  --disable-shared --disable-werror