Discussion:Faire le Projet GL sur une machine personnelle

De Ensiwiki
Aller à : navigation, rechercher

Note ; j'ai reformatté l'article, et par réflexe modifié / expliqué le shell quand j'ai cru bon (uniformisation tout ça) ; j'aimerais autant que quelqu'un check derrière pour voir si j'ai pas malencontreusement changé quelque chose qu'il ne fallait pas. Enfin, ce faisant, merci de garder à l'esprit que je n'ai pas accès au projet donc suis susceptible de passer à côté de beaucoup de choses ; mes modifs sont de l'ordre du nettoyage. --Len 21 novembre 2008 à 12:48 (UTC)

Erreur lors de la première compilation des Sources de Aflex/Ayacc

Il semble que si l'on essaie de compiler les sources de Aflex/Ayacc dans le tutoriel partie "Installation de l'arborescence globale du projet", la compilation échoue car l'une des commandes du Makefile "init.make" nécessite l'exécutable "gnaflex" ; or à ce point précis du tutoriel, on n'a pas rajouté au "PATH" le chemin "$GL_GLOBAL/Bin"... Je vous copie le retour de ma commande make :

Au départ, rien en rapport avec le projet GL n'est défini.

 benoit@benoit-X51R:~$ echo $PATH
 /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 benoit@benoit-X51R:~$ echo $GL_GLOBAL
 

On récupère l'archive et on crée la variable GL_GLOBAL :

 benoit@benoit-X51R:~$ git clone vinotb@ensibm.imag.fr:/usr/local/GL/Global/ GL2/
 Cloning into 'GL2'...
 remote: Counting objects: 332, done.
 remote: Compressing objects: 100% (278/278), done.
 remote: Total 332 (delta 44), reused 314 (delta 39)
 Receiving objects: 100% (332/332), 5.84 MiB | 163 KiB/s, done.
 Resolving deltas: 100% (44/44), done.
 benoit@benoit-X51R:~$ export GL_GLOBAL=$HOME/GL2
 benoit@benoit-X51R:~$ echo $GL_GLOBAL
 /home/benoit/GL2
 benoit@benoit-X51R:~$ cd GL2
 benoit@benoit-X51R:~/GL2$ ls
 Bin  Commun  Doc  init.make  Makefile  Sources
 benoit@benoit-X51R:~/GL2$ cd Sources/
 benoit@benoit-X51R:~/GL2/Sources$ ls
 aflex-ayacc-for-gnat  Creer_Arbres_05  LISEZ_MOI  Machine_Abstraite  Makefile
 benoit@benoit-X51R:~/GL2/Sources$ make
 cd aflex-ayacc-for-gnat/ && make gnaflex
 make[1]: entrant dans le répertoire « /home/benoit/GL2/Sources/aflex-ayacc-for-gnat »

... Je passe la première partie de la compilation ...

gnaflex  lexical.l
make[3]: gnaflex : commande introuvable
make[3]: *** [lexical.adb] Erreur 127
make[3]: quittant le répertoire « /home/benoit/GL2/Sources/Creer_Arbres_05/Creer_Arbres/Src »
make[2]: *** [all] Erreur 1
make[2]: quittant le répertoire « /home/benoit/GL2/Sources/Creer_Arbres_05/Creer_Arbres/Src »
make[1]: *** [Exec/creer_arbres] Erreur 2
make[1]: quittant le répertoire « /home/benoit/GL2/Sources/Creer_Arbres_05 »
make: *** [Creer_Arbres_05/Exec/creer_arbres] Erreur 2

Il faudrait donc définir les variables d'environnement avant toute exécution de la commande "make". Néanmoins, j'ai remarqué dans le retour de la commande "make" complet (envoyez-moi un courriel et je vous l'enverrai), vous aviez bien voulu exécuter ceci :

cd Machine_Abstraite/L_Interp/Src && PATH="/home/benoit/GL2/Sources/../Bin:$PATH" make

Il semble que ça n'est pas fonctionné... Peut-être aurait-il fallu utiliser la commande "export"?

Réponse

La syntaxe PATH=toto commande est correcte, elle veut dire : « Crée un nouveau processus, positionne PATH à toto dans ce processus, puis exécutes-y la commande "commande" ». Par contre, cette commande ne s'appliquait qu'à la compilation de ima, j'avais oublié de l'ajouter pour compiler Creer_Arbres_05 (le petit outil qui génère arbres.ad[bs] à partir de GrammaireArbres.txt). C'est corrigé. --Moy 8 janvier 2013 à 17:44 (CET)

Makefile fourni à corriger

Dans la sous-section "Compilation des utilitaires", le Makefile fourni génère une erreur. Il faut supprimer les 2 lignes qui concernent "rehash" et "tabul" vers la fin du Makefile.

le chemin n'est plus bon

/usr/local/GL/Global/Doc/Consignes/Seance_Machine.txt

est en fait:

/usr/local/GL/Global/Doc/Seance_Machine.txt

Fait. N'hésitez pas à corriger ce genre de typos directement dans la page du Wiki. --Moy 7 janvier 2009 à 15:05 (UTC)

Support des exceptions Ada pour les outils de debug ?

Il est dit sur la page qu'il faut recompiler GCC. C'est étrange, je trouve, ne serait-ce pas plutôt GDB ? Ce problème semble lié à Gentoo Bug #226661, où un patch pour GDB est fourni, et pas pour GCC... Si le problème ne venait que de GCC et était résolvable par simple recompilation du package upstream, nous autres gentooistes devraient avoir quelque chose de compatible (parce qu'il n'y a pas de raison que Gentoo se prive de supporter ce que supporte déjà upstream, si ya des patches, c'est là où ça se complique...). Enfin, si quelqu'un sait... --Len 14 janvier 2009 à 08:59 (UTC)


Salut, Non, je confirme c'est bien GCC qu'il faut recompiler. Je ne sais pas non plus pourquoi, c'est très étrange en fait. Ca foire sur debian unstable, debian stable, ubuntu et fedora (bon, les trois debianiques, ça se comprendrait, ça serait pas la première fois qu'un patch debian fout la merde :), mais ça foire exactement pareil sous fedora, et si j'ai bien compris ils essaient de pas trop patcher chez fedora). J'ai recompilé gdb avant d'essayer de recompiler gcc, ça a rien changé, alors qu'avec le gcc fraîchement recompilé ça marchait sous les deux gdb (celui d'ubuntu et celui recompilé). Ca donne quoi chez toi sous gentoo ? --Levitta 14 janvier 2009 à 09:20 (UTC)

Sous Gentoo, le problème semble différent, car on a une version de GCC compilée à part de la distro normale, donc on a deux GCC, dont un compilé exprès pour GNAT, donc il y a aussi un support à avoir côté GDB... je peux savoir quelle version de GDB vous avez (sur lesquelles cela fonctionne donc) ? --Len 14 janvier 2009 à 15:31 (UTC)

J'ai GDB 6.8, là. Ca marche à la fois sur la version "vanilla" et sur celle patchée par debian. --Levitta 14 janvier 2009 à 16:25 (UTC)

Je confirme que la version patchée par Ada Core de GDB ne résout pas le problème... alors, cela voudrait dire que la compilation de GCC (version Ada Core) sur une Gentoo n'est pas suffisante... vraiment étrange cette histoire. Ça demande investigation, mais je n'ai pas le temps là, puis je n'ai pas de projet GL à rendre à la fin du mois, moi. :] --Len 14 janvier 2009 à 18:00 (UTC)