22-7-03 - Boletim ViaLinuxis em sintonia com o Fórum |
gcc como cross compiler para o 68000 |
cd /home/foo host=sparc-sun-solaris2 target=m68k-coff prefix=/bar i=$prefix/bin mkdir build-binutils build-gcc build-newlib build-gdb # Configure, build and install binutils cd build-binutils ../binutils-2.9.1/configure --target=$target --prefix=$prefix -v make all install # Configure, build and install gcc cd ../build-gcc ../gcc-2.8.1/configure --target=$target --prefix=$prefix -v make all install # Configure, build and install newlib cd ../build-newlib ../newlib-1.8.1/configure --target=$target --prefix=$prefix -v # The settings for FOO_FOR_TARGET aren't necessary if you put $prefix/bin # in your path before running this. make all install \ CC_FOR_TARGET=$i/${target}-gcc \ AS_FOR_TARGET=$i/${target}-as \ LD_FOR_TARGET=$i/${target}-ld \ AR_FOR_TARGET=$i/${target}-ar \ RANLIB_FOR_TARGET=$i/${target}-ranlibInfelizmente isto não funcionou para mim e para muita gente (vendo as mensagens de erro na internet). Isto porque o cross gcc (xgcc) não consegue compilar as funções matemáticas por falta de headers. Muitas pessoas construiram soluções ruins para este problema como por exemplo a criação de patch para o compilador suprindo os headers. Entretanto a melhor resposta para este problema está em http://crossgcc.billgatliff.com/crossgccfaq/t1.html que faz duas compilações, primeiro sem a biblioteca newlib e depois com newlib.
Meu objetivo é gerar código para o kit do 68000 que usamos no laboratório através do Linux. Veja como isto foi feito desde a construção do cross compilador até o seu uso:
# GERANDO o ambiente de desenvolvimento m68k-coff: # obter os arquivos para a criação do cross compiler wget -t0 http://ftp.gnu.org/gnu/binutils/binutils-2.13.1.tar.gz wget -t0 -c ftp://ftp.gnu.org/pub/gnu/gcc/gcc-2.95.1.tar.gz wget -t0 ftp://sources.redhat.com/pub/newlib/newlib-1.8.1.tar.gz # expande os arquivos tar -zxvf binutils-2.13.1.tar.gz tar -zxvf gcc-2.95.1.tar.gz tar -zxvf newlib-1.8.1.tar.gz # acerta as variaveis de ambiente target=m68k-coff prefix=/usr/local # em que lugar vai ser instalado i=$prefix/bin # cria binutils - contém utilitários como o assembler, criador do srec, etc. mkdir build-binutils build-gcc cd build-binutils ../binutils-2.13.1/configure --target=$target --prefix=$prefix -v make all install cd .. # cria o gcc sem as funções matemáticas (elas serão compiladas posteriormente). cd build-gcc ../gcc-2.95.1/configure --target=$target --prefix=$prefix --host=i586-pc-linux-gnu --enable-languages=c --without-headers --with-newlib 2>&1 | tee config.log make all-gcc install-gcc 2>&1 | tee make.log cd .. # cria a biblioteca mkdir build-newlib cd build-newlib/ echo $target ../newlib-1.8.1/configure --target=$target --prefix=$prefix 2>&1 | tee configure.log make all install 2>&1| tee make.log # cria o gcc com as funções da newlib cd ../build-gcc ../gcc-2.95.1/configure --target=$target --prefix=$prefix --enable-languages=c 2>&1 | tee config.log make all install 2>&1 |tee make.log # antes de usar o cross compiler precisa de criar o ldscript: more ldscript # este ldscript vai colocar o código (text) (e subsequentemente variáveis, etc.) a partir da posição 0x1000 ---------------------------------------------- SECTIONS {.text 0x1000 : {*(.txt)}} ---------------------------------------------- # USANDO o cross gcc: m68k-coff-gcc -m68000 -mshort -c -S teste.c # gera o código em assembly teste.s m68k-coff-gcc -m68000 -mshort -c teste.c # gera o objeto m68k-coff-ld -r -dp -e main -T ldscript teste.o -o projeto.o m68k-coff-objcopy -O srec projeto.o projeto.srec # o arquivo projeto.srec pode ser enviado para o kit 68000 sbc68k. # Para ver o código no assembly do 68K: m68k-coff-objdump -D -mm68k projeto.o
16-07-03 awlinux | Gostaria de saber como configura e ultilisar o LiNeighborhood, em uma maquina Linux onde todas as outras são windows. Osa os servidores tb |
16-07-03 awlinux | Gostaria de saber como implementar um servidor de aplicaçãcom tomcat , java , no linux |
14-07-03 cad | [1] Como faço para desligar o linux pelo terminal windows sem ter que logar com root |
18-07-03 jkinoshi |
|
14-07-03 travocheir | Como faço para montar o cdrom no zipslack? Já tentei de varias formas mas não consegui, a montagem do disquete é normal!!!! |
07-07-03 enio | [2] Como posso mudar a senha do root, que esqueci, no boot do RH8 usando o GRUB? O GRUB tem o seguinte: root (hd0,0) kernel /vmlinuz-2.4.18-14 ro root=LABEL=/ |
14-07-03 cvasco18 |
|