89 lines
6.2 KiB
HTML
89 lines
6.2 KiB
HTML
<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>
|