Introduction à Dtc
Le paquet dtc contient le
compilateur d'arbre de périphériques pour travailler avec des
fichiers sources et binaires d'arborescence de périphériques ainsi
que libfdt, une bibliothèque auxiliaire pour lire et manipuler des
arbres de périphériques au format binaire.
Ce paquet est connu pour pouvoir être construit et fonctionner
correctement avec une plateform 12.3.
Informations sur le paquet
-
Téléchargement (HTTP) : https://kernel.org/pub/software/utils/dtc/dtc-1.7.2.tar.xz
-
Somme de contrôle MD5 du téléchargement :
0f193be84172556027da22d4fe3464e0
-
Taille du téléchargement : 168 Ko
-
Estimation de l'espace disque requis : 13 Mo (avec
les tests)
-
Estimation du temps de construction : 0,2 SBU (avec
les tests)
Dépendances de Dtc
Facultatives
libyaml-0.2.5, SWIG-4.3.0 et texlive-20240312
Installation de Dtc
Installez dtc en exécutant les
commandes suivantes :
mkdir build &&
cd build &&
meson setup --prefix=/usr \
--buildtype=release \
-D python=disabled .. &&
ninja
Pour tester les résultats lancez : CC='gcc -Wl,-z,noexecstack' meson test
-v.
Maintenant, en tant qu'utilisateur root
:
ninja install
Toujours en tant qu'utilisateur root
, supprimez la bibliothèque statique
inutile :
rm /usr/lib/libfdt.a
Si vous avez installé texlive-20240312, vous pouvez
construire la documentation au format PDF en exécutant la commande
suivante :
pushd ../Documentation
latexmk -bibtex --pdf dtc-paper &&
latexmk -bibtex --pdf dtc-paper -c
popd
Pour installer la documentation, en tant qu'utilisateur
root
, exécutez la commande
suivante :
cp -R ../Documentation -T /usr/share/doc/dtc-1.7.2
Si vous avez installé SWIG-4.3.0 et souhaitez installer les liaisons
Python 3 de ce paquet, construisez le module Python 3 :
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..
En tant qu'utilisateur root
,
installez le module Python 3 :
pip3 install --no-index --find-links dist --no-user libfdt
Explication des commandes
--buildtype=release
:
spécifie le type de construction convenant aux versions stables de
ce paquet, comme la valeur par défaut produit des binaires non
optimisés.
-D python=disabled
:
ce paramètre évite de construire les liaisons Python 3 avec la
méthode obsolète (exécuter setup.py directement). Nous
construisons les liaisons Python 3 avec la commande pip3 wheel séparément si
nécessaire.
CC='gcc -Wl,-z,noexecstack'
: cette
variable évite de marquer les bibliothèques partagées dans la suite
de tests comme nécessitant une pile exécutable. Glibc 2.41 et
supérieur a arrêté de permettre d'utiliser dlopen
sur ce type de bibliothèque, donc la suite
de tests échouerait. Cependant, ces bibliothèques partagées n'ont
pas vraiment besoin d'une pile exécutable, donc nous pouvons
utiliser -Wl,-z,noexecstack
pour corriger la suite de tests. Il est nécessaire d'utiliser la
variable d'environnement CC
pour la
commande meson test
car ces bibliothèques partagées sont construites par un script de
tests au lieu du système de construction meson/ninja, et le script de tests ne
reconnaît pas d'autres variables d'environnement « communes »
comme LDFLAGS
.