diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2016-07-19 10:05:33 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-08-01 12:15:00 +0100 |
commit | c9e3815b2eb50c269696dc88be0e2fa4dd0a5fd9 (patch) | |
tree | 6f4560aae168349f1cb900ba7ccf624d4758f61d /documentation | |
parent | fa0c574deb63c646281e5acdd698dc78763b5fe8 (diff) | |
download | poky-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.xml | 71 |
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 | ||