summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2016-07-19 10:05:33 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-08-01 12:15:00 +0100
commitc9e3815b2eb50c269696dc88be0e2fa4dd0a5fd9 (patch)
tree6f4560aae168349f1cb900ba7ccf624d4758f61d /documentation
parentfa0c574deb63c646281e5acdd698dc78763b5fe8 (diff)
downloadpoky-c9e3815b2eb50c269696dc88be0e2fa4dd0a5fd9.tar.gz
ref-manual: Added new "Checking for Missing Build-Time Dependencies" section.
I added a new suggest section to the existing "Debugging Build Failures" section. This section describes how to check for build-time dependencies. Fixes [YOCTO #9976] (From yocto-docs rev: 54cd7161593ba35b63a26ade312cc4aee17e3515) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/ref-manual/usingpoky.xml71
1 files changed, 71 insertions, 0 deletions
diff --git a/documentation/ref-manual/usingpoky.xml b/documentation/ref-manual/usingpoky.xml
index 40e39b5578..61d5fbf877 100644
--- a/documentation/ref-manual/usingpoky.xml
+++ b/documentation/ref-manual/usingpoky.xml
@@ -246,6 +246,77 @@
246 </para> 246 </para>
247 </section> 247 </section>
248 248
249 <section id='checking-for-missing-build-time-dependencies'>
250 <title>Checking for Missing Build-Time Dependencies</title>
251
252 <para>
253 A recipe might build successfully even though some of its
254 build-time dependencies are missing from
255 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
256 Following are the two most common ways in which that can happen:
257 <itemizedlist>
258 <listitem><para>
259 The build-time dependency just happens to already exist in
260 the staging sysroot
261 (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>)
262 by the time the recipe is built.
263 This situation occurs when the build-time dependency is
264 built earlier during recipe processing.
265 </para></listitem>
266 <listitem><para>
267 The component built by the recipe conditionally enables
268 functionality depending on whether it can find the
269 build-time dependency in the staging sysroot.
270 If the build-time dependency is missing, the corresponding
271 functionality is disabled.
272 This condition is known as a "floating dependency".
273 </para></listitem>
274 </itemizedlist>
275 </para>
276
277 <para>
278 Because, dealing with the second case is more complex, focus will
279 be on the first case.
280 The
281 <link linkend='ref-classes-insane'><filename>build-deps</filename></link>
282 QA check checks that every library the component linked against is
283 declared as a build-time dependency.
284 If that is not the case, then the first situation described in the
285 previous list exists, and <filename>build-deps</filename> reports
286 a missing build-time dependency.
287 </para>
288
289 <para>
290 Another, more manual, way to check a recipe for missing build-time
291 dependencies of the first type is to build with an empty staging
292 sysroot.
293 An easy way to do this build is to simply remove
294 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>,
295 which is usually
296 <filename>${</filename><link linkend='var-BUILDDIR'><filename>BUILDDIR</filename></link><filename>}/tmp</filename>,
297 as it includes the staging sysroots.
298 </para>
299
300 <para>
301 Another, faster method to remove the staging sysroot is to use the
302 <filename>scripts/wipe-sysroot</filename> script, which removes
303 just the staging sysroots and keeps everything else in
304 <filename>TMPDIR</filename>.
305 <note>
306 The <filename>scripts/</filename> directory appears in
307 <filename>PATH</filename> after running the build environment
308 initialization script (i.e.
309 <link linkend='structure-core-script'><filename>oe-init-build-env</filename></link>
310 or
311 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>),
312 which results in the ability to to run
313 <filename>wipe-sysroot</filename> immediately.
314 </note>
315 </para>
316
317 </section>
318
319
249 <section id='usingpoky-debugging-dependencies'> 320 <section id='usingpoky-debugging-dependencies'>
250 <title>Dependency Graphs</title> 321 <title>Dependency Graphs</title>
251 322