Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Criando um Cross Compiler entre Linux e Solaris

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Criando um Cross Compiler entre Linux e Solaris

    Criando um Cross Compiler entre Linux e Solaris



    Eu trabalho muito com servidores Solaris 10 Sparc e, como qualquer bom servidor, não temos instalados compiladores neles, como minha estação de trabalho é Linux x86_64 e nem sempre tenho uma máquina Sparc com Solaris disponível para instalar um compilador, eu resolvi pesquisar para criar um GCC Cross Compiler entre meu Debian Linux x86_64 e um Solaris 10 Sparc, o que tem funcionado muito bem para os casos que venho necesitado.

    A primeira coisa é baixar o códogo fonte do "binutils" e "gcc" eu utilizei o binutils versão 2.21.0.20110216 e o gcc versão 4.4.2.

    Os código fonte podem ser encontrados aqui: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    e aqui: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    (Para o binutils eu peguei pelo apt-get source binutils)

    Configurando o ambiente

    export TARGET=sparc-sun-solaris2.10
    export PREFIX=/opt/solaris-cross-compiler/
    export SYSROOT=$PREFIX/sysroot/
    mkdir -p $SYSROOT
    Copiando Bibliotecas

    Para que os programas que forem criados utilizem as bibliotecas corretas do solaris, precisamos copiar as bibliotecas do servidor solaris para nossa máquina, os que deve ser feito é o seguinte:
    Copiar /usr/include do Solaris para $SYSROOT/usr/include da sua máquina;
    Copiar /usr/local/include do Solaris para $SYSROOT/usr/local/include/ da sua máquina;
    Copiar /lib do Solaris para $SYSROOT/usr/local/include/ da sua máquina;
    Copiar /usr/lib do Solaris para $SYSROOT/usr/lib/ da sua máquina;
    Copiar /usr/local/lib do Solaris para $SYSROOT/usr/local/lib/ da sua máquina;
    Caso também necessite criar programas gráficos, talvez necessite também:

    Copiar /usr/openwin/include do Solaris para $SYSROOT/usr/openwin/include da sua máquina;
    Copiar /usr/dt/include do Solaris para $SYSROOT/usr/dt/include da sua máquina;
    Copiar /usr/X11/include do Solaris para $SYSROOT/usr/X11/include da sua máquina;
    Copiar /usr/openwin/lib do Solaris para $SYSROOT/usr/openwin/lib da sua máquina;
    Copiar /usr/dt/lib do Solaris para $SYSROOT/usr/dt/lib da sua máquina;
    Copiar /usr/X11/lib do Solaris para $SYSROOT/usr/X11/lib da sua máquina;
    Criando ambiente de compilação
    mkdir $PREFIX/sources/
    cd $PREFIX/sources/

    Baixe os códigos fontes do binutils e gcc para o diretório $PREFIX/sources;
    Compilando binutils
    $ tar -xvzf binutils-2.21.0.20110216.tar.gz
    $ mkdir build-binutils
    $ cd build-binutils/
    $ ../binutils-2.21.0.20110216/configure -target=$TARGET --prefix=$PREFIX -with-sysroot=$SYSROOT -v
    $ make
    $ make install
    Compilando GCC

    Antes de instalar o GCC eu tive que instalar os pacotes libmpfr-dev e libgmp3-dev.
    $ tar -xvzf gcc-4.4.2.tar.gz
    $ mkdir build-gcc
    $ cd build-gcc
    $ ../gcc-4.4.2/configure --target=sparc-sun-solaris2.10 --with-gnu-as
    --with-gnu-ld --prefix=$PREFIX -with-sysroot=$SYSROOT --disable-libgcj
    --enable-languages=c,c++ --enable-threads --with-cpu=ultrasparc
    --with-headers=$SYSROOT/usr/include/ --with-libs=$SYSROOT/lib/
    --disable-multilib --without-newlib --disable-shared --disable-nls -v
    $ make
    $ make install
    Testando
    Crie um bom e velho helloWorld.c com o conteúdo:
    #include < stdio.h>
    void main () {
    printf ("Hello World!\n");
    }
    Compile:
    $ $PREFIX/bin/sparc-sun-solaris2.10-gcc helloWorld.c -o helloWorld.solaris
    Verifique se está com o formato correto:
    $ file helloWorld.solaris
    helloWorld.solaris: ELF 32-bit MSB executable, SPARC32PLUS, V8+ Required,
    version 1 (SYSV), dynamically linked (uses shared libs), not stripped

    Se está assim, é só copiar o binário para o Solaris 10 e executar!

    Tutorial de André Marques Saunite
    Não Acha Estranha Essa Frase:
    Eu Sou Hacker e Uso Windows XP!

    Use Débian, Aprenda Slackware e Brinque Muito Com Back|Track


    Fã ->Nickguitar.dll


    Quer ajudar nossso fórum e não sabe como?
    Então click na imagem e ajude-nos com os links off
X
Working...
X