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.3.0, og texlive-20250308
Installasjon av Dtc
Installer dtc ved å kjøre følgende
kommandoer:
mkdir build &&
cd build &&
meson setup --prefix=/usr \
--buildtype=release \
-D python=disabled .. &&
ninja
For å teste resultatene, utsted: CC='gcc -Wl,-z,noexecstack' meson test
-v.
Nå, som root
bruker:
ninja install
Fortsatt som root
bruker, fjern det
ubrukelige statiske biblioteket:
rm /usr/lib/libfdt.a
Hvis du har texlive-20250308 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.7.2
Hvis du har installert SWIG-4.3.0 og du ønsker å installere Python 3
bindinger av denne pakken, 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 nyere har sluttet å
tillate dlopen
et slikt delt
bibliotek 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
.