diff --git a/documentation/ref-manual/technical-details.xml b/documentation/ref-manual/technical-details.xml
index 558af87d91..9bb09fb948 100644
--- a/documentation/ref-manual/technical-details.xml
+++ b/documentation/ref-manual/technical-details.xml
@@ -984,12 +984,14 @@
The OpenEmbedded build system automatically adds common types of
- runtime dependencies between packages, which means you do not need to
- explicitly declare the packages using
+ runtime dependencies between packages, which means that you do not
+ need to explicitly declare the packages using
RDEPENDS.
- Two automatic mechanisms exist (shlibdeps and
- pcdeps) that handle shared libraries and
- package configuration (pkg-config) modules, respectively.
+ Three automatic mechanisms exist (shlibdeps,
+ pcdeps, and depchains) that
+ handle shared libraries, package configuration (pkg-config) modules,
+ and -dev and -dbg packages,
+ respectively.
For other types of runtime dependencies, you must manually declare
the dependencies.
@@ -1071,6 +1073,39 @@
dependencies between -dev packages.
+
+ depchains:
+ If a package foo depends on a package
+ bar, then foo-dev
+ and foo-dbg are also made to depend on
+ bar-dev and bar-dbg,
+ respectively.
+ Taking the -dev packages as an example,
+ the bar-dev package might provide
+ headers and shared library symlinks needed by
+ foo-dev, which shows the need
+ for a dependency between the packages.
+
+ The dependencies added by depchains
+ are in the form of
+ RRECOMMENDS.
+
+ By default, foo-dev also has an
+ RDEPENDS-style dependency on
+ foo, because the default value of
+ RDEPENDS_${PN}-dev (set in
+ bitbake.conf) includes
+ "${PN}".
+
+
+ To ensure that the dependency chain is never broken,
+ -dev and -dbg
+ packages are always generated by default, even if the packages
+ turn out to be empty.
+ See the
+ ALLOW_EMPTY
+ variable for more information.
+