Introduction to Dtc
        
        
          The dtc package contains the
          Device Tree Compiler for working with device tree source and binary
          files and also libfdt, a utility library for reading and
          manipulating device trees in the binary format.
        
        
          This package is known to build and work properly using an LFS 12.4
          platform.
        
        
          Package Information
        
        
        
          Dtc Dependencies
        
        
          Optional
        
        
          libyaml-0.2.5, SWIG-4.3.1, and texlive-20250308
        
       
      
        
          Installation of Dtc
        
        
          Install dtc by running the
          following commands:
        
        mkdir build &&
cd    build &&
meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D python=disabled  &&
ninja
        
          To test the results, issue: CC='gcc
          -Wl,-z,noexecstack' meson test -v.
        
        
          Now, as the root user:
        
        ninja install
        
          Still as the root user, remove the
          useless static library:
        
        rm /usr/lib/libfdt.a
        
          If you have texlive-20250308 installed, you can
          build the PDF format of the documentation by issuing the following
          command:
        
        pushd ../Documentation
  latexmk -bibtex --pdf dtc-paper &&
  latexmk -bibtex --pdf dtc-paper -c
popd
        
          To install the documentation, as the root user issue the following command:
        
        cp -R ../Documentation -T /usr/share/doc/dtc-1.7.2
        
          If you have installed SWIG-4.3.1 and you wish to install the Python 3
          bindings of this package, build the Python 3 module:
        
        pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..
        
          As the root user, install the
          Python 3 module:
        
        pip3 install --no-index --find-links dist --no-user libfdt
       
      
        
          Command Explanations
        
        
          --buildtype=release:
          Specify a buildtype suitable for stable releases of the package, as
          the default may produce unoptimized binaries.
        
        
          -D python=disabled: This
          switch prevents building the Python 3 binding with the deprecated
          method (running setup.py directly). We will build
          the Python 3 binding with the pip3
          wheel command separately if wanted.
        
        
          CC='gcc -Wl,-z,noexecstack': This
          variable prevents marking the shared libraries in the test suite as
          requiring executable stack. Glibc 2.41 or later has stopped
          allowing dlopening such a shared
          library so the test suite would fail. But those shared libraries
          don't really need an executable stack, so we can use -Wl,-z,noexecstack to fix up the test
          suite. It's needed in the CC environment
          for the meson test
          because those shared libraries are built by a test script instead
          of the meson/ninja building system, and the
          test script does not recognize other “common” environment
          variables like LDFLAGS.