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

10 réponses

1 2
Avatar
talon
HelloMan wrote:
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:



Compiler povray sous FreeBSD avec les ports ça passe tout seul sans
aucun problème. Tu dois même trouver aisément le paquet précompilé.
Par exemple Kpovmodeller qui vient en standard avec KD-3.1 utilise
povray pour visualiser.


--

Michel TALON

Avatar
HelloMan
Compiler povray sous FreeBSD avec les ports ça passe tout seul sans
aucun problème. Tu dois même trouver aisément le paquet précompilé.
Par exemple Kpovmodeller qui vient en standard avec KD-3.1 utilise
povray pour visualiser.





Effectivement, mais ce n'est pas le but de mon post, j'ai vérifié, povray
est présent dans les ports de FreeBSD, mais il s'agit de la version 3.1 et
j'ai besoin de la version 3.5. tout ce que je cherche à savoir, c'est quels
settings de --host= à utiliser pour la cross compilation depuis ma station
linux.

merci de vos infos.

Avatar
talon
HelloMan wrote:

Compiler povray sous FreeBSD avec les ports ça passe tout seul sans
aucun problème. Tu dois même trouver aisément le paquet précompilé.
Par exemple Kpovmodeller qui vient en standard avec KD-3.1 utilise
povray pour visualiser.





Effectivement, mais ce n'est pas le but de mon post, j'ai vérifié, povray
est présent dans les ports de FreeBSD, mais il s'agit de la version 3.1 et
j'ai besoin de la version 3.5. tout ce que je cherche à savoir, c'est quels
settings de --host= à utiliser pour la cross compilation depuis ma station
linux.


Et qu'est-ce qui t'empêche d'éditer un peu le Makefile du port povray
dans FreeBSD pour qu'il aille te chercher la version 3.5? Le système de
ports c'est pas taillé dans du diamant, ça peut se touiller comme le
reste. Au prochain cvsup, tes modifs seron effacées.


merci de vos infos.




--

Michel TALON


Avatar
Fred
Michel Talon wrote:

Et qu'est-ce qui t'empêche d'éditer un peu le Makefile du port povray
dans FreeBSD pour qu'il aille te chercher la version 3.5? Le système de
Je me permets de saisir l'occasion en plein vol.


Modifier le Makefile pour lui faire comprendre d'aller chercher la
version 3.5, c'est une chose.
Mais ensuite, les checksums, les patchs, tout ça, ça ne va plus coller.

ça ne devient plus aussi simple que ça, finalement, ou me goure-je ?

--
FP, déjà confronté à ce genre de problème.

Avatar
HelloMan
Fred wrote:

Michel Talon wrote:

Et qu'est-ce qui t'empêche d'éditer un peu le Makefile du port povray
dans FreeBSD pour qu'il aille te chercher la version 3.5? Le système de
Je me permets de saisir l'occasion en plein vol.


Modifier le Makefile pour lui faire comprendre d'aller chercher la
version 3.5, c'est une chose.
Mais ensuite, les checksums, les patchs, tout ça, ça ne va plus coller.

ça ne devient plus aussi simple que ça, finalement, ou me goure-je ?




justement, c'est en fait un peu compliqué, dans le ./configure, on peut
forcer les variables --build --host --target, mais contrairement à pas mal
de scripts ./configure, dans celui-ci, il n'y a pas d'exemple; et les
variables à rentrer dans ce cas changent pour chaque programme.

ça ne doit pas être compliqué pourtant, il doit suffire de mettre un truc
comme --host=i586-pc-BSD, ou i586-bsd-gnu ou je ne sais pas quoi.

à vrai dire j'ai même essayé avec --host=fiat_panda, et même avec ça,
./configure ne donne pas d'erreur ni n'indique rien; ça n'est qu'au moment
de la compilation que ça plante (je n'ai pas les librairies pour la fiat
panda)

merci de votre aide, infos ou suggestion.


Avatar
talon
Fred wrote:
Michel Talon wrote:

Et qu'est-ce qui t'empêche d'éditer un peu le Makefile du port povray
dans FreeBSD pour qu'il aille te chercher la version 3.5? Le système de
Je me permets de saisir l'occasion en plein vol.


Modifier le Makefile pour lui faire comprendre d'aller chercher la
version 3.5, c'est une chose.
Mais ensuite, les checksums, les patchs, tout ça, ça ne va plus coller.
make NOCHECKSUM=yes

les patchs, avec un peu de chance, ils passent tels quels.

ça ne devient plus aussi simple que ça, finalement, ou me goure-je ?



--

Michel TALON


Avatar
Stephane Dupille
Bonjour


Salut !

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.


Oui.

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


Ok.

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. Le mieux que vous puissiez faire, c'est de compiler
povray sur votre freeBSD.

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 ?


Bof. Il faudrait fournir au linux la libc du BSD. C'est pas gagné
cette histoire, mais ça reste possible. En tout cas c'est moins simple
que d'apprendre à utiliser un FreeBSD pour compiler des trucs dessus.
Et comme à priori vous savez utiliser un linux, vous saurez utiliser
un FreeBSD, si tant est que vous preniez la peine de lire le handbook.

Sinon, la version 5.1 ne semble pas adapté pour ce que vous voulez :
c'est une version de dev, la version stable c'est la 4.9.

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.


Autre idée : utiliser l'émulation linux binaire des FreeBSD : vous
compilez votre code sur votre linux, vous installez sur le freeBSD les
libs qui manquent, et tout devrait tourner sans problèmes.

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


'ala. HTH

Merci de votre aide


Ah mais de rien.

--
OF> C'est quoi "godwin" ? un jeu ? une personne ?
Une sorte de station-service : on accumule les points et on peut
gagnerune gamelle.
-+- PE in <http://www.le-gnu.net> - Le point sur les godwins -+-

Avatar
Fred
Michel Talon wrote:

make NOCHECKSUM=yes
ça, d'accord.


les patchs, avec un peu de chance, ils passent tels quels.
Ce n'est pas ce que j'ai vécu, pour l'avoir expérimenté.


PS : en passant, comme ça, quelqu'un a t'il réussi à compiler le port
lang/ifc ?

Parce que la version 6.0.304 pour fribi 4.8 reste introuvable (si si,
j'ai cherché, Intel ne le met plus à dispo, et si donc vous avez quelque
chose à ce sujet, un tar qui traine dans un coin, je suis preneur).

Je me suis donc rappatrié sur une version 7.1.008 (qui elle, se trouve
facilement) mais qui ne correspond pas au port (de fribi _4.9_, j'espère
que je suis limpide).

J'ai donc modifié quelque peu le Makefile pour lui dire de s'occuper de
la 7.1.008 et non pas de la 7.1.033 (ou 024, je ne sais plus). Or force
est de constater, que si ça compile (ok), si ça s'installe (yes !), et
si la compilation d'un fichier source de 3 lignes en objet fonctionne
(glop !), le linkage est loin de marcher (pas glop).

Ne sachant pas trop d'où vient le problème (il trouve pourtant les
bonnes libs aux bons endroits), je me suis dit que ça serait peut-être
mieux de rappatrier la bonne version du package qui va bien avec la
bonne version du port.

Voilà voilà.

--
FP, qui compile donc sous Debian pour l'instant.

Avatar
talon
Fred wrote:
Michel Talon wrote:

make NOCHECKSUM=yes
ça, d'accord.


les patchs, avec un peu de chance, ils passent tels quels.
Ce n'est pas ce que j'ai vécu, pour l'avoir expérimenté.




Les expériences diffèrent. La plupart du temps les patchs passent trés
bien, voire sont parfaitement inutiles.

PS : en passant, comme ça, quelqu'un a t'il réussi à compiler le port
lang/ifc ?



Je ne sais pas pour ifc, mais pour icc j'ai du aller sur Intel premier,
ce qui est particulièrement merdique, mais j'y ai trouvé la version
voulue.


J'ai donc modifié quelque peu le Makefile pour lui dire de s'occuper de
la 7.1.008 et non pas de la 7.1.033 (ou 024, je ne sais plus). Or force
est de constater, que si ça compile (ok), si ça s'installe (yes !), et
si la compilation d'un fichier source de 3 lignes en objet fonctionne
(glop !), le linkage est loin de marcher (pas glop).


Si tu arrives à ce point, ça ne doit pas être bien sorcier, je suppose.


Voilà voilà.



--

Michel TALON


Avatar
Thierry Thomas
Mercredi 05 novembre 2003 à 11:09 GMT, Michel Talon a écrit :
Modifier le Makefile pour lui faire comprendre d'aller chercher la
version 3.5, c'est une chose.
Mais ensuite, les checksums, les patchs, tout ça, ça ne va plus coller.
make NOCHECKSUM=yes



Ou mieux, un `make makesum' si on n'a pas récupéré le tarball n'importe
où, et encore mieux après vérification si le MD5 est fourni par
l'auteur.

les patchs, avec un peu de chance, ils passent tels quels.


Au pire, on les adapte, un diff, et zou ! un send-pr, tant qu'on y
est...
--
Th. Thomas.


1 2