diff --git a/documentation/ref-manual/ref-variables.xml b/documentation/ref-manual/ref-variables.xml
index 1181d64576..4316ea5dc6 100644
--- a/documentation/ref-manual/ref-variables.xml
+++ b/documentation/ref-manual/ref-variables.xml
@@ -9951,6 +9951,34 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
The PROVIDES statement results in
the "libav" recipe also being known as "libpostproc".
+
+
+ In addition to providing recipes under alternate names,
+ the PROVIDES mechanism is also used
+ to implement virtual targets.
+ A virtual target is a name that corresponds to some
+ particular functionality (e.g. a Linux kernel).
+ Recipes that provide the functionality in question list the
+ virtual target in PROVIDES.
+ Recipes that depend on the functionality in question can
+ include the virtual target in
+ DEPENDS
+ to leave the choice of provider open.
+
+
+
+ Conventionally, virtual targets have names on the form
+ "virtual/function" (e.g. "virtual/kernel").
+ The slash is simply part of the name and has no
+ syntactical significance.
+
+
+
+ The
+ PREFERRED_PROVIDER
+ variable is used to select which particular recipe
+ provides a virtual target.
+