Bonjour,
Comme dit dans la news précédante, je reconstruis les différents paquets de Logram pour m'assurer qu'ils sont les meilleurs qu'ils peuvent. Cela prend un peu de temps, car il faut bien faire, mais c'est agréable quand ça marche.
Aujourd'hui, j'ai enfin réussi à avoir GCC 4.5 et toutes ses dépendances, y compris CLooG, PPL, PolyLib, Libelf, etc. Les binutils, le noyau, MPFR, GMP et MPC sont compilés. De même pour la LibC, basée sur EGlibC version SVN d'ailleurs.
Cette grosse mise à jour m'a permis de bien tester le plugin shlibdeps de Setup, et de corriger quelques bugs, comme vous pourrez le voir sur Gitorious. De plus, des bugs dans la gestion multi-dépôts ont été corrigés (du fait que j'ai deux dépôts : l'officiel et mon dépôt local).
Setup grandeur nature
Un point intéressant est que ça fait une semaine maintenant que j'utiliser un chroot géré par Setup, du fait que je reconstruis Logram dans Logram.
Tout marche impeccablement, y compris des trucs stressants pour Setup comme les paquets en versions différentes venant de différent dépôts. Je crois que je n'ai eu qu'un petit problème jusqu'à présent, alors que j'ai utilisé des «setup add», y compris en suppression, «setup upgrade», «setup autoremove», etc.
Bref, c'est agréable de commencer à pouvoir faire confiance à Setup. Je sais maintenant qu'il sait parfaitement installer et supprimer les paquets. Jouer avec les flags des fichiers est également plaisant
.
Quelques changements de direction
Du calme, n'ayez pas peur
. Voici une liste de changements qui ne vous affoleront normalement pas :
- Abandon des paquets -dbg, car la compilation en -g2 (le -g classique, avec symboles de débogage) est incompatible avec -flto. Et comme il faut -flto pour avoir un Logram super rapide, le -g2 passe à la trappe, et est remplacé par un -g1 (juste de quoi générer des stacktraces). L'avantage de tout cela est qu'on n'a plus besoin de stripper les exécutables, qu'on évite les paquets -dbg, et que l'utilisateur a une belle stacktrace en cas de plantage sans rien devoir installer
.
- J'envisage de tester Systemd, présenté par l'auteur de PulseAudio. Il est extrêmement intéressant, genre de truc qui met tout le monde d'accord (comme Git), propose des fonctions toutes neuves, et intéresse Fedora, Debian, Red Hat et un peu Ubuntu (qui s'est fait griller Upstart sur le coup
).
- J'ai vu que le projet LLVM propose une réimplémentation de la libstdc++ et de libgcc, pour se passer entièrement de GCC et de ses bibliothèques. De plus, Gold et son plugin peuvent lier des objets LLVM. Il faut que je voie si je peux envoyer un petit patch à Clang pour générer des binaires LLVM (avec un truc du genre «clang -o -emit-llvm app.bc fichier.o autre.o»).
Maintenant, une simple recompilation des dépendances de build-essential, et je pourrai tester le serveur de compilation grandeur nature
.