De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: André Marques Saunite
Data de Publicação: 28 de fevereiro de 2011
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: http://ftp.gnu.org/gnu/binutils/
e aqui: http://ftp.gnu.org/gnu/gcc/
(Para o binutils eu peguei pelo apt-get source binutils
)
export TARGET=sparc-sun-solaris2.10 export PREFIX=/opt/solaris-cross-compiler/ export SYSROOT=$PREFIX/sysroot/ mkdir -p $SYSROOT
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;
mkdir $PREFIX/sources/ cd $PREFIX/sources/
Baixe os códigos fontes do binutils e gcc para o diretório $PREFIX/sources
;
$ 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
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
#include < stdio.h> void main () { printf ("Hello World!\n"); }
$ $PREFIX/bin/sparc-sun-solaris2.10-gcc helloWorld.c -o helloWorld.solaris
$ 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!
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários