OVH Cloud OVH Cloud

Cross compilation howto pour Povray linux->FreeBSD5.1

15 réponses
Avatar
HelloMan
Bonjour

Je dispose d'un côté d'une station linux équipée de toutes les librairies
de développement possibles et imaginables, de GCC, de fortran, et tout ce
qu'il faut pour bien compiler (et si il faut, j'en rajouterai)

et de l'autre côté d'une station BSD dédiée au calcul, démunie à l'extrème.

Connaissant mieux linux que BSD, je souhaiterais réaliser la chose suivante:

Compiler Povray (http://www.povray.org) sur la station linux, pour la
station linux; ça en fait, c'est déjà fait, et ça marche sans aucun
problème (les variables suivantes sont autodétectées pour la station linux:

--build
--host
--target)

Du fait que je ne suis pas spécialiste de BSD, je ne souhaite pas surcharger
la bécane, qui tourne avec un environnement minimalistique, pas lui
rajouter d'environnement de développement.

Donc, je veux pondre du code BSD (FreeBSD 5.1) à partir de la station linux;
en théorie, si j'ai bien compris, ça doit être possible non ?

Il suffirait de bien choisir la variable --host en lui donnant les bonnes
valeurs. Sans toucher la variable --build. Seulement voilà, je ne sais pas
comment faire; je veux obtenir un executable pour FreeBSD version 5.1 et
pour un intel i586 tout bête.

Pourriez vous me donner des exemples que vous mettriez dans ce cas d'école
??

Merci de votre aide

5 réponses

1 2
Avatar
Pascal Cabaud
Le Wed, 05 Nov 2003 12:21:31 +0100, Stephane Dupille <sdupille+ disait :
Du fait que je ne suis pas spécialiste de BSD, je ne souhaite pas surcharger
la bécane, qui tourne avec un environnement minimalistique, pas lui
rajouter d'environnement de développement.


Mauvaise idée. Un unix sans compilo et sans environnement de dev
n'est pas un Unix.


Un Unix sans compilo vit tres bien. Et une machine de compilation voire
de dev au milieu des autres ca permet :
- d'economiser de l'espace disque
- de ne pas donner les outils aux SK
- d'economiser des resources de calcul
- de tester / valider dans un environnement bien a part

Pour repondre a la question, outre l'emulation, il y a la compilation
d'un GCC et des binutils avec les options kivonbien sur la machine Linux.
Je me souviens avoir fait ca un jour, en 1h le nez dans le doc' on s'en
sort.


Avatar
manu
HelloMan wrote:

Je dispose d'un côté d'une station linux équipée de toutes les
librairies de développement possibles et imaginables, de GCC, de fortran,
et tout ce qu'il faut pour bien compiler (et si il faut, j'en rajouterai)

et de l'autre côté d'une station BSD dédiée au calcul, démunie à l'extrème.
[et tu veux cross-compiler pour BSD]


Pourquoi ne pas monter NFS une partition sur la machine BSD qui manque
de disque et lui faire compiler lui même? Ca sera nettement plus
simple...

--
Emmanuel Dreyfus
A lire: 240 pages en français sur l'administration UNIX avec BSD
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3


Avatar
Stephane Dupille
Mauvaise idée. Un unix sans compilo et sans environnement de dev
n'est pas un Unix.
Un Unix sans compilo vit tres bien. Et une machine de compilation voire

de dev au milieu des autres ca permet :


Oui, à la condition qu'on ait (presque) exactement la même machine à
côté, qui elle est dotée du compilo. On est d'accord. Mais la machine
en prod ne pourra pas fonctionner sans celle qui dispose du compilo
(au moins pour les mise à jour). Dans ce cas là seulement on pourra se
passer du compilo en prod.

- d'economiser de l'espace disque


Mouaif. Au prix du Mo actuellement. Ça pèse tant que ça, GCC ? Bon,
je suis d'accord là dessus pour certains cas particuliers (comme les
systèmes embarqués où la place est comptée, mais ce n'est pas la
majorité des cas).

- de ne pas donner les outils aux SK


Oui, en tout cas pour le firewall. Derrière, on vise quand même le
pratique. Ceci dit, par définition, un SK ne sait pas se servir d'un
compilo.

En général quand même, on se débrouille pour que le SK n'y ait pas
accès, au compilo.

- d'economiser des resources de calcul


Ah ? Ça bouffe des ressources de calcul un compilo pas utilisé ? On
ne l'utilise que pendant les mise à jour, c-à-d quand on ne calcule
pas.

- de tester / valider dans un environnement bien a part


Oui, OK pour un serveur de préprod. Mais il faut qu'il y a un
préprod, ce qui ne semble pas être le cas ici.

Pour repondre a la question, outre l'emulation, il y a la compilation
d'un GCC et des binutils avec les options kivonbien sur la machine Linux.
Je me souviens avoir fait ca un jour, en 1h le nez dans le doc' on s'en
sort.


Oui. Mais je ne comprends pas pourquoi on cherche à se compliquer
tant que ça l'existence... Installer le compilo sur le FreeBSD (et en
plus, je suis sûr qu'il y est), c'est quand même plus simple, moins
chiant, et du coup, on aura moins de problème. Ce n'est que mon avis,
vous en faites ce que vous en voulez, hein !

--
Moi je trouve qu'il est debile de vouloir detruir kekel ke chose
MG> Ta touche k est coincée ?
-+- G in GNU : dans le kk jusqu'au cou -+-


Avatar
Pascal Cabaud
Le Thu, 06 Nov 2003 10:23:48 +0100, Stephane Dupille
<sdupille+ disait :
Mauvaise idée. Un unix sans compilo et sans environnement de dev
n'est pas un Unix.
Un Unix sans compilo vit tres bien. Et une machine de compilation voire

de dev au milieu des autres ca permet :
Oui, à la condition qu'on ait (presque) exactement la même machine à

côté, qui elle est dotée du compilo. On est d'accord. Mais la machine
en prod ne pourra pas fonctionner sans celle qui dispose du compilo
(au moins pour les mise à jour). Dans ce cas là seulement on pourra se
passer du compilo en prod.


Souvent on a plusieurs machines sous le meme OS...

<pub>
le build.sh de NetBSD est vraiment top'... vivement que le pkgsrc sache
crossbuilder !
</pub>

- d'economiser de l'espace disque
Mouaif. Au prix du Mo actuellement. Ça pèse tant que ça, GCC ? Bon,

je suis d'accord là dessus pour certains cas particuliers (comme les
systèmes embarqués où la place est comptée, mais ce n'est pas la
majorité des cas).


J'ai une IPX qui ronronne a cote de moi et une SS2 derriere. Tu crois
que je peux me permettre d'y mettre GCC ? Accessoirement, imagine le
temps pour compiler une helloworld.c...

- de ne pas donner les outils aux SK
Oui, en tout cas pour le firewall. Derrière, on vise quand même le

pratique. Ceci dit, par définition, un SK ne sait pas se servir d'un
compilo.


uname -a
cc -v
cat > file.c
cc file.c
./a.out & rm -f .sh_history
exit

- d'economiser des resources de calcul
Ah ? Ça bouffe des ressources de calcul un compilo pas utilisé ? On

ne l'utilise que pendant les mise à jour, c-à-d quand on ne calcule
pas.


35h, toussa... quand on ne calcule pas, on ne travaille pas (en
theorie...).



Avatar
Stephane Dupille
Oui, à la condition qu'on ait (presque) exactement la même machine à
côté, qui elle est dotée du compilo. On est d'accord. Mais la machine
en prod ne pourra pas fonctionner sans celle qui dispose du compilo
(au moins pour les mise à jour). Dans ce cas là seulement on pourra se
passer du compilo en prod.
Souvent on a plusieurs machines sous le meme OS...



Ce n'est pas le cas ici. Là il y a un linux et un FreeBSD.

J'ai une IPX qui ronronne a cote de moi et une SS2 derriere. Tu crois
que je peux me permettre d'y mettre GCC ? Accessoirement, imagine le
temps pour compiler une helloworld.c...


Pour le helloworld ? J'ai quand même fait toutes mes études sur une
IPX et SS (de mémoire un 2 aussi, mais j'ai un doute), et la compile
se passait bien. Mais c'était un solaris dessus. Et pourtant, l'IPX à
l'époque était déjà à la ramasse par rapport aux PC flambant neufs
sous Linux qu'ils venaient d'installer à la fac. C'est certes plus
long, mais on n'est pas obligé de rester à côté, on peut très bien
lancer les grosses compiles la nuit.

Oui, en tout cas pour le firewall. Derrière, on vise quand même le
pratique. Ceci dit, par définition, un SK ne sait pas se servir d'un
compilo.
uname -a

cc -v
cat > file.c
cc file.c
./a.out & rm -f .sh_history
exit


Il y a un gros problème ici : le SK a déjà un accès à la machine,
qui ne doit pas arriver. Si vraiment on est parano, on peut faire un
p'tit « chmod 700 gcc ». S'il utilise GCC, c'est qu'il est déjà trop
tard.

- d'economiser des resources de calcul
Ah ? Ça bouffe des ressources de calcul un compilo pas utilisé ? On

ne l'utilise que pendant les mise à jour, c-à-d quand on ne calcule
pas.
35h, toussa... quand on ne calcule pas, on ne travaille pas (en

theorie...).


Rien n'empêche de lancer la compilation aux moments où n'est pas là.
Restera à faire le « make install » le lendemain. Une machine peut
très bien travailler quand il n'y a personne derrière.

Mon dernier makeworld, je l'ai lancé et je suis parti manger. Quand
je suis revenu, il était presque prêt. Plus qu'à re-compiler le
kernel, et tout installer. Et basta. Temps de travail effectif : moins
d'une demi-heure. Temps de compil, plus d'une heure et demi. Temps
consommé sur mon horaire de travail : 30 minutes.

--
Je n'utilise pas Linux, c'est un système qui fait la part trop belle aux
neuneux. Un peu de complexité et de prise de tête n'a jamais fait de mal
à personne, et ça assure une sélection naturelle.
-+-AT in : <http://www.le-gnu.net> - Bien sélectionner le neuneu -+-



1 2