Build process
GCC's t-arm-elf file was updated to enable support for the following options:
- marm/mthumb (arm or thumb code generation)
- mlittle-endian/mbig-endian (little or big endian architectures)
- mhard-float/msoft-float (hardware or software fpu instructions)
- mno-thumb-interwork/mthumb-interwork (arm-thumb modes interworking)
- mcpu=arm7 (arm7 targets without hardware multiply)
The disabled options were mapcs-32/mapcs-26 (for old ARM machines with 26-bit program counters) and fno-leading-underscore/fleading-underscore (non-ELF library function format).
The following steps and configuration switches were used in the compilation process:
- cd [binutils-build]
- [binutils-source]/configure --target=arm-elf --prefix=[toolchain-prefix] --enable-interwork --enable-multilib
- make all install
- export PATH="$PATH:[toolchain-prefix]/bin"
- cd [gcc-build]
- [gcc-source]/configure --target=arm-elf --prefix=[toolchain-prefix] --enable-interwork --enable-multilib --enable-languages="c,c++" --with-newlib --with-headers=[newlib-source]/newlib/libc/include
- make all-gcc install-gcc
- cd [newlib-build]
- [newlib-source]/configure --target=arm-elf --prefix=[toolchain-prefix] --enable-interwork --enable-multilib
- make all install
- cd [gcc-build]
- make all install
- cd [gdb-build]
- [gdb-source]/configure --target=arm-elf --prefix=[toolchain-prefix] --enable-interwork --enable-multilib
- make all install