spawn
Bon je reviens à la charge et invoque encore votre aide. J'ai ENFIN reussi à compiler et à installer gcc 3.2.3 sous ma titine suse 10.1. Mais à ma grande surprise (dû surement à mon manque d'experience sous linux), ma Suse ne répond plus. Je boot normalement, mais plus de yast, plus aucun logiciel de configuration ne marche. Je me balade un peu dans les log pour voir les messages d'erreur renvoyé, et BOUM :-o libstdc++.so.6 pose conflit :-o . Je vais regarder s'il est présent, bas oui qu'il est présent parce qu'il pose conflit (LoL je sais j'ai du mal le matin). Je fait un gcc --version et là oh miracle gcc version 3.2.3. Alors dans un premier temps je suis content :-D :-D :-D . Il marche. Oui mais suse lui ne marche plus, il veux gcc 4.1 pour fonctionner. Le probleme est qu'il ma écrasé mon gcc 4.1.1 pour y installer la version 3.2.3 par dessus. Alors (eddy33 va etre content) j'avais entendu parler du cross compliteur, mais je n'y avais strictement rien compris, et comme sous fedora, il avais fait un gcc et un gcc32, je ne pensais pas que ca allé poser probleme.
Donc je voulais vous demander comment faire un cross compilateur lorsque l'on à un niveau de noobie sous linux. Est-ce vraiment difficile ? Est-ce facile de s'en servir une fois le cross compilateur installé ? Et est-ce que sa va réellement résoudre mon probleme ?
PS: Pour l'instant je réinstalle ma Suse, car plus rien ne répond, mais bon laissé vos message je répondré que meme, c'est promis.
Autre question subsidiaire, fedora veux plus booter, j'ai pas encore vraiment regarder le probleme, mais une question qui me tarode depuis quelque temps. Comment marche le rescu. J'insert le CD, je fait rescu, et il me met en ligne de commande, mais je ne sais pas quoi faire pour réparer le systeme. Je voudrais juste qu'il me remette le systeme à jour sans suprimer les fichier présent dessus. Marre de tout recompiler à chaque fois ! ! ! :hammer: :-x :cry:
Pikachu_2014
Fedora ne veut plus booter.
Soit.
Mais à quel moment dans le démarrage vois-tu que Fedora coince ?
spawn
Juste avant le login. Il doit manquer un fichier, mais pour l'instant, c'est le cross compilateur qui m'embete pas mal !
spawn
En faite rien de grave avec fedora, mon hdb1 monté en /home fait des bruit chalou et n'arrive pas à se monter, donc il ne veux pas demarrer. Mais bon sa me fait un peu chié que meme, c'est mon travail depuis 2 mois qui était dessus ! ! !
Pour le cross compilateur toujours personne pour m'éclairer un peu ? ? ? ? ? ?
spawn
Le probleme de fedora est belle est bien résolu. Il boot parfaitement. Pour ce qui est du cross compilateur, j'ai refais un tour sur le net et sur les forum, mais je ne comprend toujours pas grand chose. S'il vous plait, personne pour aider un noobie ? ? ? ? ? :-? 🙁 :cry:
SmootherFrOgZ
voici une documentation sur le HOWTO du cross compilateur, au cas ou tu l'aurais pas vu.
ici ( la doc n'est pas récente )
edit= en espérent que ça puisse t'être utile.
spawn
merci de ta doc sur le cross compilateur. Elle est deja un peu plus claire, mais sa ma l'air bien sympa que meme.
Pour ce qui est de mon compagnon fedora, il ne re-veut plus booter (oui je sais il est capricieux). Il me dit :
libgcc_s.so.1 must be installed for pthread_cancel to work
Et je ne peux rien faire. Je ne peux meme pas acceder à un terminal. J'ai beau faire ctrl + C, ou ctrl + alt + F#, aucun ne marche. Ecran vide pour chaqu'un. Comment ne pas perdre mes données, et en plus ne pas perdre trop de temps ?
Pikachu_2014
Oh oh !
Il manque la libgcc !
Et ça, ça ne pardonne pas !
eddy33
Allez,
je recommence.
Pour faire un compilateur croise, on ne se le paluche plus a la main (y a 15 ans, oui !).
Utilise l'outil crosstool. Il est fait pour ca :
http://www.kegel.com/crosstool/
rondudju !!!
Sinon, tu as un article si tu veux tout faire a la main de mon ami Pierre paru dans LM (<edit> et qui presente crosstool aussi </edit>) :
http://pficheux.free.fr/articles/lmf/cross_compilation/cross_compilation_images.pdf
++
Pikachu_2014
Je me souviens parfaitement de cet article : paru dans le numéro d'été 2005 de Linux Magazine.
Au sommaire en plus : l'hibernation (couverture), QEMU et LaTeX...
eddy33
spawn
rebonjour à toutes et à tous.
Après mure reflexion cette nuit (oui comme quoi la nuit porte conseil), je pense qu'un cross compilateur n'est pas vraiment utile pour ce que je voudrais faire. Je voudrais juste pouvoir compiler avec gcc 4.1.1, puis de temps en temps avec gcc 3.2.3, juste lorsque j'en ai besoin. Si j'installe gcc 3.2.3 dans un autre repertoire, et que je crée des liens pour pouvoir l'utiliser, cela ne serais t-il pas plus facile ? Et moins fastidieu qu'un cross compilateur, qui à la base sert à compiler avec un gcc d'une autre platforme. Je voudrais votre avis sur mon choix, pour savoir s'il est réalisable !
PS : Comment on fait pour clean le "./configure" ? Car j'ai fait un "./configure" avec un mauvais "prefix", et j'ai beau le changer par la suite, c'est toujours le premier qu'il prend en parametre. Merci par avance !
eddy33
Hum...
A toi de voir ! Moi, c'est tout choisi !
Fais :
./configure --help
tu verras comment ajuster ton "prefix"
++
spawn
merci, en faite c'est bon, j'ai fait "./configure prefix=/home/dev/gcc_3.2.3" et il la rajouté au autre option des anciens "./configure". Ce qui est bizarre, c'est que je l'avais deja fait et qu'il ne c'était pas rajouté avant.
Pikachu_2014
As-tu fait un "make clean" avant de re-"configurer" ?
spawn
non je n'ai pas fait de "make clean". Je suis nouveau sous linux, et la compilation c'est encore plus nouveau pour moi. Sa sert à quoi le "make clean" ? ? ?
Donc je viens de faire un "make clean", après je refait mon "./configure" avec mon prefix et mes option, mais il me dit :
[color=CC0000]if9154.c: In function ?main?:
if9154.c:6: warning: incompatible implicit declaration of built-in function ?printf?
./config.status is unchanged[/color]
??????????????????????? Sa veux dire quoi sa ? ? ? :-o :-o :-o
voici le "./configure" que je lui ai rentré :
[color=CC0000]./configure
--with-gcc-version-trigger=/home/dev/gcc3.2.3/gcc/version.c
--prefix=/home/dev/gcc3.2.3/
--enable-languages=c,c++
--host=i686-pc-linux-gnu
--norecursion[/color]
(bien sur je n'ai pas fait ENTRER à chaque ligne, c'est juste pour que mon post soit plus lisible :-D )
Pikachu_2014
"make clean" permet de virer tous les binaires e.a. (et autres fichiers résultant de la compilation) issus d'une compilation précédente.
Ainsi on est sût que la compilation avec de nouvelles options ne sera pas "parasitée" par des restes de compilations précédentes.
Make est un outil puissant qui facilite la vie des vrais et bons développeurs (pas comme moi, mes Makefile sont une parodie de scripts bash :-D) ; cf. en.wikipedia, c'est bien expliqué je trouve.
Pour tes "warnings", du moment que ce ne sont pas des erreurs, fais comme si tu n'avais rien vu 😉
spawn
Pour ma part je ne prete pas attention au warning. Si je devais y preter attention je serais deja chauve avec le front plat à force de ma tapper contre le bureau :-D :-D :-D . Le seul soucis de ce warning est "./config.status is unchanged". Si le "./configure" n'a pas changé non plus, je vais encore écraser mon gcc 4.1.1, et sa va encore planter nunux. Je l'ai deja ré-installé hier, si je pouvais éviter ça dès que je teste, sa me ferai plizir ! ! ! !
Pikachu_2014
Pour vérifier et dissiper et tes craintes, ne fais pas le make install en root, mais en temps que simple utilisateur :
- si la destination est le traditionnel /usr|/usr/local, il y aura erreur car un simple user n'a pas les droits d'écriture ; dans ce cas, le configure... est mal configuré :-D ;
- si la destination est bien ce que tu as spécifié (--prefix=...), pas de soucis, puisque tu as les drois d'écriture dans ce répertoire.
:-D
spawn
Pas folle la guepe ! ! ! ! MERKI
Bon les warning je veux bien passer outre, mais les ERROR, c'est plus dur de faire comme si on avait pas vu. A bas oui, sa stop la compil :
[color=CC0000]In file included from ./read-rtl.c:24:
./rtl.h:125: warning: type of bit-field ?code? is a GCC extension
./rtl.h:128: warning: type of bit-field ?mode? is a GCC extension
./read-rtl.c: In function ?fatal_with_file_and_line?:
./read-rtl.c:62: warning: traditional C rejects ISO C style function definitions
./read-rtl.c: In function ?read_rtx?:
./read-rtl.c:662: error: invalid lvalue in increment
make[1]: *** [read-rtl.o] Error 1[/color]
D'habitude j'arrive à comprendre quelque chose, mais là pour moi sa ne veux rien dire, et je ne sais vraiment pas si c'est un logiciel manquant qui fait sa, ou une erreur du type "t'es dans le caca mon grand:-D :-D :-D ", oui vous savez, le genre d'erreur qui vous prends 3 jours à la corriger et finalament vous en rajouté une plus chiante à la place ! ! ! ! ! ! ! ! ! :-D :-D :-D