[Kos-dev] Cross compilo gcc 3.0 sparc-sun-solaris2.7 -> i586-gnu

d2 kos-dev@enix.org
19 Jun 2001 15:17:32 +0200


The following message is a courtesy copy of an article
that has been posted to melimelo.forum.C as well.


Voici mes notes pour generer un cross-compilo gcc 3.0 depuis Sun vers
Intel x86. Pas un cross-compilo complet : pas de libc, rien : juste
gcc[*]/as/ld pour compiler des noyaux d'OS vers IA32. Teste et approuve
sur un petit noyau (kos.enix.org). Ca peut servir a d'autres (c'est un
peu un casse-tete SURTOUT a cause du --disable-shared, sinon, on a un
probleme : il manque crti.o a la compilation de libgcc_s.so)

Pour compiler un cross-compilateur gcc (host sparc-sun-solaris2.7, target
i586-gnu) :

Binutils :
==========
  + Recuperer les binutils (testes avec v2.11) ; desarchiver
  + ./configure --prefix=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/stow/binutils-2.11 --host=sparc-sun-solaris2.7 i586-gnu
  + make && make install # + make check eventuellement

Environnement :
===============
  + etapes stow si on a choisi de passer par stow
  + setenv PATH vers le bin/ de binutils (celui ou il y a i586-gnu-as et cie)

Gcc :
=====
  + Recuperer gcc (teste avec v3.0) ; desarchiver

  + ./configure --prefix=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/stow/gcc-3.0 --enable-languages=c++ --host=sparc-sun-solaris2.7 --disable-shared --with-as=/udd/ddecotig/xgcc/host-sparc-solaris7/stow/binutils-2.11/bin//i586-gnu-as --with-gnu-as --with-ld=/udd/ddecotig/xgcc/host-sparc-solaris7/stow/binutils-2.11/bin//i586-gnu-ld --with-gnu-ld -v i586-gnu

  # Les trucs importants la-dedans :
  #  --with-as, --with-ld, et surtout --enable-languages=c++ et --disable-shared

  + Commenter :
     #include <signal.h>
     #include <sys/ucontext.h>
    dans gcc/config/i386/linux.h

  + make

  # Ca foire dans le configure de i586-gnu/libiberty -- On ignore

  + make install

Environnement :
===============
  + etapes stow si on a choisi de passer par stow


Notes :
  [*] A noter que le gcc compile ainsi a un bug : SEGV sur des macros
      etendues vers ({ }), dans certains cas seulement. Pas encore
      pu isoler le bug pour soumission. En cours.

--
d2