Introduksjon til Dtc
dtc pakken inneholder enhetstreet
kompiler for å jobbe med enhetstrekilde og binære filer og også
libfdt, et verktøybibliotek for lesing og manipulering av
enhetstrær i binært format.
Notat
Utviklingsversjoner av BLFS kan kanskje ikke bygge eller kjøre
noen pakker riktig hvis LFS eller avhengigheter har blitt
oppdatert siden de siste stabile versjonene av bøkene.
Pakkeinformasjon
Dtc Avhengigheter
Valgfri
libyaml-0.2.5, SWIG-4.5.1, og texlive-20260301
Installasjon av Dtc
Installer dtc ved å kjøre følgende
kommandoer:
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
--default-library=shared \
-D python=disabled &&
ninja
For å teste resultatene, utsted: meson configure -D werror=false && ninja
test.
Nå, som root bruker:
ninja install
Hvis du har texlive-20260301 installert, kan du
bygge PDF formatet til dokumentasjonen ved å gi følgende kommando:
pushd ../Documentation
latexmk -bibtex --pdf dtc-paper &&
latexmk -bibtex --pdf dtc-paper -c
popd
For å installere dokumentasjonen, som root bruker utsted følgende kommando:
cp -R ../Documentation -T /usr/share/doc/dtc-1.8.1
Hvis du har installert SWIG-4.5.1 og du ønsker å installere Python 3
bindinger av denne pakken, først fiks koden for kompatibilitet med
SWIG 4.5.0 eller nyere:
sed -e 's/PyString_FromString/PyUnicode_FromString/' \
-e 's/PyString_AsString/PyBytes_AsString/' \
-e 's/PyInt_AsLong/PyLong_AsLong/' \
-i ../pylibfdt/libfdt.i
Bygg Python 3 modulen:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..
Som root bruker, installer Python 3
modulen:
pip3 install --no-index --find-links dist --no-user libfdt
Parameterforklaringer
--buildtype=release:
Spesifiser en byggetype egnet for stabile utgivelser av pakken, som
standard kan produsere uoptimaliserte binærfiler.
-D python=disabled: Denne
bryteren forhindrer å bygge Python 3 bindingen med den avviklede
metoden (kjøre setup.py direkte). Vi vil bygge
Python 3 binding med pip3
wheel kommandoen separat om ønskelig.
CC='gcc -Wl,-z,noexecstack': Denne
variabelen forhindrer å merke de delte bibliotekene i testpakken
som å kreve kjørbar stabel. Glibc 2.41 eller senere har sluttet å
tillate bruk av dlopen for slike
delte biblioteker så testpakken vil mislykkes. Men de delte
bibliotekene trenger egentlig ikke en kjørbar stabel, slik at vi
kan bruke -Wl,-z,noexecstack for å fikse
testpakken. Det trengs i CC miljøet for
meson test fordi de
delte bibliotekene er bygget av et testskript i stedet for
meson/ninja byggesystem, og
testskriptet gjenkjenner ikke andre «vanlige» miljøvariabler
som LDFLAGS.