OVH Cloud OVH Cloud

crosscompilation

5 réponses
Avatar
Jean-Pierre Bordenave
Bonjour,

Je souhaite faire de la crosscompilation de linux vers sparc (sun), j'essaye
de mettre en oeuvre un environnement linux
convivial, pour travailler localement sur mon poste, une fois au point,
puis je souhaite au final generer mon binaire pour
que je puisse livrer directement sur une machine sparc (binaire)

J'ai trouvé des liens de crosscompile de code sparc = > code x386 mais rien
dans l'autre sens

Il y a quelqu'un qui a deja fait ca, ou qui a une piste comment faire.

Merci pour vos infos

@++

5 réponses

Avatar
Nicolas George
"Jean-Pierre Bordenave" wrote in message
<425d583e$0$15287$:
Il y a quelqu'un qui a deja fait ca, ou qui a une piste comment faire.


Debian fournit des scripts pratiques pour créer des cross-compilateurs vers
toutes les architectures supportées, dont évidemment Sparc. Cf. les packages
dpkg-cross et toolchain-source.

Ça, ça fonctionne si la cible est du Linux-sparc, je ne sais pas si on peut
réclamer un cross-compilateur spécifiquement pour Solaris. Mais comme
Solaris travaille avec ELF également, il se peut que le même gcc marche de
base.

Avatar
Ronald
Le Wed, 13 Apr 2005 19:34:53 +0200, Jean-Pierre Bordenave a écrit :


Bonjour,

Je souhaite faire de la crosscompilation de linux vers sparc (sun),
j'essaye de mettre en oeuvre un environnement linux convivial, pour
travailler localement sur mon poste, une fois au point, puis je souhaite
au final generer mon binaire pour que je puisse livrer directement sur
une machine sparc (binaire)

J'ai trouvé des liens de crosscompile de code sparc = > code x386 mais
rien dans l'autre sens

Il y a quelqu'un qui a deja fait ca, ou qui a une piste comment faire.



Jamais fais pour x86->sparc, mais si tu utilises binutils/gcc/glibc la
technique devrait être la même:
compiler binutils avec --host=i386-tartampion-linux
--target=sparc-trucmuche-linux --prefix=/path

gcc : pareil avec en plus --disable-shared --disable-threads
--enable-languages=c

glibc --build=i386-tartampion-linux --host=sparc-trucmuche-linux
--prefix=/path/sparc-trucmuche-linux

refaire un gcc avec shared et threads
refaire une glibc avec les mêmes options

note: ça peux foirer au premier gcc puisque la libc est absente, ça le
fait pour ppc, il faut éditer gcc/config/rs6000/linux.h, pour sparc
aucune idée (google au cas où) ou peut être --with-newlib
note2: ça peux aussi foirer pour la première
glibc à cause de libgcc_eh qui n'est compilée/installée qu'avec
shared, tu peux commenter -lgcc_eh dans glibcsrc/Makeconfig

Merci pour vos infos


ben, faut voir.


@++


Avatar
Jean-Pierre Bordenave
Précision :

J'ai les memes applications se trouvant sur 3 plateformes (sun,aix,hp),
mon probleme est que je perds pas mal de
temps a executer toutes les phases de compilation sur chaque plateforme

D'ou la mise en oeuvre d'une plateforme commune de developpement linux et de
la cross compil (sparc) sun,
(rs6000)aix, hp,voir linux, tout ca en un seul traitement automatise.

Je precise que pour les specificite des librairie systeme des OS, je dispose
de bibliotheque standards dans les 3 os,
qui encapsule tout ca, c'est transparent pour mes applications a la compile
quelque soit l'OS.

Je fais mon toto.c, j'appui sur le bouton, et ca me fait tout pour tout dans
tout, je vais boire un
café pendant ca travaille.

mais il me reste a faire le bouton, c'est un peu plus dur, reste a savoir
comment

:-)
Avatar
Nicolas George
"Jean-Pierre Bordenave" wrote in message
<425d776d$0$15290$:
Je fais mon toto.c, j'appui sur le bouton, et ca me fait tout pour tout dans
tout, je vais boire un
café pendant ca travaille.


Si c'est uniquement pour ça, il y a aussi la solution consistant à lancer la
compilation sur les autres machines avec un bon vieux ssh des familles (plus
éventuellement rsync pour copier les sources, à moins de les partager par
NFS. C'est infiniment plus simple.

Avatar
Jean-Pierre Bordenave
J'ai deja efectivement songe a cette solution, mais elle satisfaisante qu'a
moitie

Merci

Si c'est uniquement pour ça, il y a aussi la solution consistant à lancer
la
compilation sur les autres machines avec un bon vieux ssh des familles
(plus
éventuellement rsync pour copier les sources, à moins de les partager par
NFS. C'est infiniment plus simple.