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.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.3 plattform.
Pakkeinformasjon
Dtc Avhengigheter
Valgfri
libyaml-0.2.5, SWIG-4.3.0, og texlive-20240312
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-20240312 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
.