Introdução ao Dtc
O pacote dtc contém o Device Tree
Compiler para trabalhar com fontes de árvores de dispositivos e
arquivos binários e também libfdt, uma biblioteca de utilitários
para ler e manipular árvores de dispositivos no formato binário.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.3.
Informação do Pacote
-
Transferência (HTTP): https://kernel.org/pub/software/utils/dtc/dtc-1.7.2.tar.xz
-
Soma de verificação MD5 da transferência:
0f193be84172556027da22d4fe3464e0
-
Tamanho da transferência: 168 KB
-
Espaço em disco estimado exigido: 13 MB (com testes)
-
Tempo de construção estimado: 0,2 UPC (com testes)
Dependências de Dtc
Opcionais
libyaml-0.2.5, SWIG-4.3.0 e texlive-20240312
Instalação do Dtc
Instale dtc executando os
seguintes comandos:
mkdir build &&
cd build &&
meson setup --prefix=/usr \
--buildtype=release \
-D python=disabled .. &&
ninja
Para testar os resultados, emita: CC='gcc -Wl,-z,noexecstack' meson test
-v.
Agora, como o(a) usuário(a) root
:
ninja install
Ainda como o(a) usuário(a) root
,
remova a biblioteca estática inútil:
rm /usr/lib/libfdt.a
Se você tiver texlive-20240312 instalado, poderá
construir o formato PDF da documentação emitindo o seguinte
comando:
pushd ../Documentation
latexmk -bibtex --pdf dtc-paper &&
latexmk -bibtex --pdf dtc-paper -c
popd
Para instalar a documentação, como o(a) usuário(a) root
emita o seguinte comando:
cp -R ../Documentation -T /usr/share/doc/dtc-1.7.2
Se você tiver instalado SWIG-4.3.0 e desejar instalar as ligações Python 3
desse pacote, construa o módulo Python 3:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..
Como o(a) usuário(a) root
, instale
o módulo Python 3:
pip3 install --no-index --find-links dist --no-user libfdt
Explicações do Comando
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza binários
não otimizados.
-D python=disabled
: Essa
chave impede construir a ligação do Python 3 com o método obsoleto
(executando setup.py
diretamente). Nós construiremos a ligação do Python 3 com o comando
pip3 wheel
separadamente, se desejado.
CC='gcc -Wl,-z,noexecstack'
: Essa
variável impede marcar as bibliotecas compartilhadas na suíte de
teste como exigindo pilha executável. A Glibc 2.41 ou posterior
parou de permitir abrir com dlopen
tal biblioteca compartilhada, de forma que a suíte de teste
falharia. Mas essas bibliotecas compartilhadas não precisam
realmente de uma pilha executável, de modo que nós podemos usar
-Wl,-z,noexecstack
para
consertar a suíte de teste. É necessário no ambiente CC
para o meson
test porque essas bibliotecas compartilhadas são
construídas por um conjunto de comandos sequenciais de teste em vez
do sistema de construção meson/ninja, e o conjunto de comandos
sequenciais de teste não reconhece outras variáveis de ambiente
“comuns” como
LDFLAGS
.