generic-poky/documentation/ref-manual/eclipse/html/poky-ref-manual/ref-features-backfill.html

89 lines
6.2 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>9.4. Feature Backfilling</title>
<link rel="stylesheet" type="text/css" href="../book.css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="The Yocto Project Reference Manual">
<link rel="up" href="ref-features.html" title="Chapter 9. Reference: Features">
<link rel="prev" href="ref-features-image.html" title="9.3. Images">
<link rel="next" href="ref-variables-glos.html" title="Chapter 10. Variables Glossary">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" title="9.4. Feature Backfilling">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="ref-features-backfill"></a>9.4. Feature Backfilling</h2></div></div></div>
<p>
Sometimes it is necessary in the OpenEmbedded build system to extend
<a class="link" href="ref-variables-glos.html#var-MACHINE_FEATURES" title="MACHINE_FEATURES"><code class="filename">MACHINE_FEATURES</code></a>
or <a class="link" href="ref-variables-glos.html#var-DISTRO_FEATURES" title="DISTRO_FEATURES"><code class="filename">DISTRO_FEATURES</code></a>
to control functionality that was previously enabled and not able
to be disabled.
For these cases, we need to add an
additional feature item to appear in one of these variables,
but we do not want to force developers who have existing values
of the variables in their configuration to add the new feature
in order to retain the same overall level of functionality.
Thus, the OpenEmbedded build system has a mechanism to
automatically "backfill" these added features into existing
distro or machine configurations.
You can see the list of features for which this is done by
finding the
<a class="link" href="ref-variables-glos.html#var-DISTRO_FEATURES_BACKFILL" title="DISTRO_FEATURES_BACKFILL"><code class="filename">DISTRO_FEATURES_BACKFILL</code></a>
and <a class="link" href="ref-variables-glos.html#var-MACHINE_FEATURES_BACKFILL" title="MACHINE_FEATURES_BACKFILL"><code class="filename">MACHINE_FEATURES_BACKFILL</code></a>
variables in the <code class="filename">meta/conf/bitbake.conf</code> file.
</p>
<p>
Because such features are backfilled by default into all
configurations as described in the previous paragraph, developers
who wish to disable the new features need to be able to selectively
prevent the backfilling from occurring.
They can do this by adding the undesired feature or features to the
<a class="link" href="ref-variables-glos.html#var-DISTRO_FEATURES_BACKFILL_CONSIDERED" title="DISTRO_FEATURES_BACKFILL_CONSIDERED"><code class="filename">DISTRO_FEATURES_BACKFILL_CONSIDERED</code></a>
or <a class="link" href="ref-variables-glos.html#var-MACHINE_FEATURES_BACKFILL_CONSIDERED" title="MACHINE_FEATURES_BACKFILL_CONSIDERED"><code class="filename">MACHINE_FEATURES_BACKFILL_CONSIDERED</code></a>
variables for distro features and machine features respectively.
</p>
<p>
Here are two examples to help illustrate feature backfilling:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p><span class="emphasis"><em>The "pulseaudio" distro feature option</em></span>:
Previously, PulseAudio support was enabled within the Qt and
GStreamer frameworks.
Because of this, the feature is backfilled and thus
enabled for all distros through the
<code class="filename">DISTRO_FEATURES_BACKFILL</code>
variable in the <code class="filename">meta/conf/bitbake.conf</code> file.
However, your distro needs to disable the feature.
You can disable the feature without affecting
other existing distro configurations that need PulseAudio support
by adding "pulseaudio" to
<code class="filename">DISTRO_FEATURES_BACKFILL_CONSIDERED</code>
in your distro's <code class="filename">.conf</code> file.
Adding the feature to this variable when it also
exists in the <code class="filename">DISTRO_FEATURES_BACKFILL</code>
variable prevents the build system from adding the feature to
your configuration's <code class="filename">DISTRO_FEATURES</code>, effectively disabling
the feature for that particular distro.</p></li>
<li class="listitem"><p><span class="emphasis"><em>The "rtc" machine feature option</em></span>:
Previously, real time clock (RTC) support was enabled for all
target devices.
Because of this, the feature is backfilled and thus enabled
for all machines through the <code class="filename">MACHINE_FEATURES_BACKFILL</code>
variable in the <code class="filename">meta/conf/bitbake.conf</code> file.
However, your target device does not have this capability.
You can disable RTC support for your device without
affecting other machines that need RTC support
by adding the feature to your machine's
<code class="filename">MACHINE_FEATURES_BACKFILL_CONSIDERED</code>
list in the machine's <code class="filename">.conf</code> file.
Adding the feature to this variable when it also
exists in the <code class="filename">MACHINE_FEATURES_BACKFILL</code>
variable prevents the build system from adding the feature to
your configuration's <code class="filename">MACHINE_FEATURES</code>, effectively
disabling RTC support for that particular machine.</p></li>
</ul></div>
<p>
</p>
</div></body>
</html>