LLVM-3.9.1

Introduction à llvm3

Ceci est une vieille version de llvm, installée dans /opt pour que rustc-1.16.0 puisse l'utiliser. Pour une utilisation normale, vous devriez installer LLVM-4.0.1.

Cette version de LLVM contient de vieilles version des bibliothèques, qui utilisent l'API à laquelle Rust s'attend. Bien que rustc-1.16.0 fournisse une version de LLVM-3.9 et sera construit et lié statiquement à elle, son système de construction rustbuild compilera toujours un grand nombre de compilateurs pour différentes architectures. Utiliser un LLVM séparé évite cela.

En utilisant LLVM-3.9.1 il est possible de gagner du temps à la mise à jour de Rust (le temps total de la première construction sera similaire avec ou sans LLVM-3.9.1 séparé).

Ce paquet est connu pour se construire correctement sur une plateforme LFS-8.0.

Informations sur le paquet

  • Téléchargement (HTTP) : http://llvm.org/releases/3.9.1/llvm-3.9.1.src.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 3259018a7437e157f3642df80f1983ea

  • Taille du téléchargement : 18 Mo

  • Estimation de l'espace disque requis : 663 Mo (112 Mo installés) plus 101 Mo pour la suite de tests

  • Estimation du temps de construction : 6.9 SBU (plus 1.8 SBU pour la suite de tests, dans les deux cas avec parallélisme=4)

Dépendances de llvm3

Requises

CMake-3.9.1

Recommandées

Facultatives

Doxygen-1.8.13, Graphviz-2.38.0, libffi-3.2.1 (si vous le forcez à être utilisé, la construction de rustc-1.16.0 devra être modifiée) libxml2-2.9.4, texlive-20170524 (ou install-tl-unx), Valgrind-3.13.0, Zip-3.0, OCaml et Sphinx

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/llvm3

Installation de llvm3

Installez llvm3 en lançant les commandes suivantes :

mkdir -v build                           &&
cd       build                           &&

CC=gcc CXX=g++                           \
cmake -DCMAKE_INSTALL_PREFIX=/opt/llvm3  \
      -DCMAKE_BUILD_TYPE=Release         \
      -DLLVM_BUILD_LLVM_DYLIB=ON         \
      -DLLVM_LINK_LLVM_DYLIB=ON          \
      -DLLVM_TARGETS_TO_BUILD="host"     \
      -DLLVM_INSTALL_UTILS=ON            \
      -Wno-dev ..                        &&
make

Pour tester les résultats, lancez : make check-all. Les tests sont lancés avec le nombre maximum de processeur/threads disponibles, mais la partie principale du temps supplémentaire est passé à compiler les programmes de test. Ceci fonctionne bien avec l'option de parallélisme de make.

Maintenant, en tant qu'utilisateur root :

echo "/opt/llvm3/lib" >> /etc/ld.so.conf &&
make install                             &&
/sbin/ldconfig                           &&
ln -sfv /opt/llvm3/bin/FileCheck /usr/bin

La construction de la documentation pour la version actuelle de LLVM est discutée sur LLVM-4.0.1, la construction de la documentation pour cette vieille version serait similaire, mais presque tous ceux qui ont besoin de cette vieille version nécessitent aussi la version actuelle pour Mesa-17.1.6, donc il est redondant d'installer la documentation ici.

Explication des commandes

-DLLVM_INSTALL_UTILS_=ON : Ce paramètre active l'installation de vieux programmes utilitaires. De ceux-ci, rust cherche FileChecker lorsque configure cherche le LLVM du système, les autres ne sont pas utilisés.

/sbin/ldconfig : Ceci assure que les bibliothèques seront trouvées.

ln -sfv /opt/llvm3/bin/FileCheck /usr/bin : Ceci assure que FileCheck peut être trouvé par rust même si /opt/llvm3/bin n'est pas ans le PATH (avoir deux versions de LLVM disponible dans le système est connu pour causer beaucoup de soucis).

Contents

Programmes installés: bugpoint, count, FileCheck, llc, lli, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-c-test, llvm-cxxdump, llvm-diff, llvm-dis, llvm-dsymutil, llvm-dwarfdump, llvm-dwp, llvm-extract, llvm-lib (lien symbolique vers llvm-ar), llvm-link, llvm-lto, llvm-mc, llvm-mcmarkup, llvm-nm, llvm-objdump, llvm-pdbdump, llvm-profdata, llvm-ranlib (lien symbolique vers llvm-ar), llvm-readobj, llvm-rtdyld, llvm-size, llvm-split, llvm-stress, llvm-symbolizer, llvm-tblgen, not, obj2yaml, opt, sancov, sanstats, verify-uselistorder, yaml-bench et yaml2obj
Bibliothèques installées: BugpointPasses.so, LLVMHello.so, libLLVM.so, libLLVM*.a (50 bibliothèques), libLTO.so
Répertoires installés: /opt/llvm3

Descriptions courtes

FileCheck

lit deux fichiers (un depuis l'entrée standard, l'autre spécifié dans la ligne de commande) et utilise l'un pour vérifier l'autre.

Pour des détails sur les autres éléments de ce paquet, voir LLVM-4.0.1.

Last updated on 2017-08-15 20:49:48 +0200