Criação de Toolchain de Compilação com crosstool-ng
De Wiki do Veiga
Tabela de conteúdo |
Introducao
crosstool-NG é uma ferramenta para geração de toolchains.
Um toolchain de compilação é um conjunto de ferramentas que permite compilar código para um sistema. Basicamente, um toolchain consiste em um compilador (normalmente gcc), utilitários como assembler e linker (normalmente binutils) e uma biblioteca padrão C (por exemplo, GNU Libc, uClibc ou dietlibc).
Obtendo o crosstool-ng
O código fonte do crosstool-ng está armazenamento em um repositório do Mercurial. Então, é preciso instalar essa ferramenta:
sudo apt-get install mercurial mercurial-common
Obtendo o código fonte:
hg clone http://ymorin.is-a-geek.org/hg/crosstool-ng
Instalando
Algumas dependências podem ser necessárias caso ainda não tenham sido instaladas:
sudo apt-get install gcc g++ gawk libncurses5-dev bison flex curl cvs automake texinfo
Compilando:
cd crosstool-ng ./configure --prefix=/usr/bin make make install
Gerando um toolchain
ct-ng help ct-ng menuconfig ct-ng build
Toolchain pré-configurados
O crosstool-ng disponibiliza algumas opções de toolchain pré-configurados (samples).
Listar os samples disponíveis:
ct-ng list-samples alphaev56-unknown-linux-gnu arm-bare_newlib_cortex_m3_nommu-eabi arm-cortex_a8-linux-gnueabi armeb-unknown-eabi armeb-unknown-linux-gnu armeb-unknown-linux-gnueabi armeb-unknown-linux-uclibc armeb-unknown-linux-uclibcgnueabi arm-iphone-linux-gnueabi arm-unknown-eabi arm-unknown-elf arm-unknown-linux-gnu arm-unknown-linux-gnueabi arm-unknown-linux-uclibc arm-unknown-linux-uclibcgnueabi avr32-unknown-none i586-geode-linux-uclibc i686-nptl-linux-gnu ia64-unknown-linux-gnu mingw32,i686-none-linux-gnu mips-ar2315-linux-gnu mipsel-unknown-linux-gnu mips-unknown-elf mips-unknown-linux-uclibc powerpc-405-linux-gnu powerpc64-unknown-linux-gnu powerpc-860-linux-gnu powerpc-e500v2-linux-gnuspe powerpc-unknown-linux-gnu powerpc-unknown-linux-uclibc powerpc-unknown_nofpu-linux-gnu s390-ibm-linux-gnu s390x-ibm-linux-gnu sh4-unknown-linux-gnu x86_64-unknown-linux-gnu x86_64-unknown-linux-uclibc
Verificar informações de um dos samples:
ct-ng show-powerpc-unknown-linux-uclibc
powerpc-unknown-linux-uclibc [g ]
OS : linux-2.6.31.1
GMP/MPFR : gmp-4.3.1 / mpfr-2.4.1
binutils : binutils-2.19.1
C compiler : gcc-4.2.4 (C,C++,Fortran)
C library : uClibc-0.9.30.1
Tools : sstrip dmalloc-5.5.2 duma-2_5_15 gdb-6.8 strace-4.5.18
Gerar um toolchain a partir de um sample.
ct-ng powerpc-unknown-linux-uclibc ct-ng build
Para mais informações
- crosstool-ng: http://ymorin.is-a-geek.org/projects/crosstool
Marcelo Veiga Neves < marcelo.veiga at gmail.com >
