ref-manual/devtool-reference: add warning note on deploy-target and shared objects

The command `devtool deploy-target` does not handle any dependency of
the application, even when properly listed in DEPENDS or RDEPENDS. While
the current documentation was clear on that, it felt needed to add a
note on the fact that build-time dependencies may also result in
runtime dependencies, especially for people new to the project.

Add a warning block below the existing deploy-target documentation.
Also, link to the Overview and Concepts page, which explains it
thoroughly.

[ YOCTO #14377 ]

Reported-By: Robert Berger <pokylinux@reliableembeddedsystems.com>
(From yocto-docs rev: daf514d81d08e01657ff2dc171a0afb56753dfc6)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 56c84004daad5f8a5db53e36852331435d57c8af)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Antonin Godard 2024-12-23 16:27:56 +01:00 committed by Steve Sakoman
parent 7dee2d8918
commit 4d01328526

View File

@ -550,6 +550,26 @@ the packages are already on the target. Consequently, when a runtime
call is made in the application for a dependent function (e.g. a library
call), the function cannot be found.
.. warning::
Runtime dependencies can be explicitly listed in the :term:`RDEPENDS`
variable, but may also be the result of a :term:`DEPENDS` assignment in your
application's recipe. This is usually the case when your application depends
on libraries for compilation: these libraries are listed as build-time
dependencies in the :term:`DEPENDS` variable in your application's recipe.
However these may also be runtime dependencies if they install shared objects
on which your application will dynamically link to at runtime (e.g. shared
libraries ending with ``.so``).
These runtime dependencies are automatically resolved by the
:term:`OpenEmbedded Build System` during the packaging phase. Since
``devtool`` ignores packaging dependencies, they will not be installed
automatically with ``devtool deploy-target``.
For more information on how the :term:`OpenEmbedded Build System` handles
packaging, see the :ref:`overview-manual/concepts:Automatically Added Runtime
Dependencies` section of the Yocto Project Overview and Concepts Manual.
To be sure you have all the dependencies local to the target, you need
to be sure that the packages are pre-deployed (installed) on the target
before attempting to run your application.