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.<2E>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<65>9.<2E>Reference: Features">
|
|||
|
<link rel="prev" href="ref-features-image.html" title="9.3.<2E>Images">
|
|||
|
<link rel="next" href="ref-variables-glos.html" title="Chapter<65>10.<2E>Variables Glossary">
|
|||
|
</head>
|
|||
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" title="9.4.<2E>Feature Backfilling">
|
|||
|
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|||
|
<a name="ref-features-backfill"></a>9.4.<2E>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>
|