From c9e3815b2eb50c269696dc88be0e2fa4dd0a5fd9 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Tue, 19 Jul 2016 10:05:33 -0700 Subject: [PATCH] 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 Signed-off-by: Richard Purdie --- documentation/ref-manual/usingpoky.xml | 71 ++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) 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 @@ +
+ Checking for Missing Build-Time Dependencies + + + A recipe might build successfully even though some of its + build-time dependencies are missing from + DEPENDS. + Following are the two most common ways in which that can happen: + + + The build-time dependency just happens to already exist in + the staging sysroot + (STAGING_DIR_HOST) + by the time the recipe is built. + This situation occurs when the build-time dependency is + built earlier during recipe processing. + + + The component built by the recipe conditionally enables + functionality depending on whether it can find the + build-time dependency in the staging sysroot. + If the build-time dependency is missing, the corresponding + functionality is disabled. + This condition is known as a "floating dependency". + + + + + + Because, dealing with the second case is more complex, focus will + be on the first case. + The + build-deps + QA check checks that every library the component linked against is + declared as a build-time dependency. + If that is not the case, then the first situation described in the + previous list exists, and build-deps reports + a missing build-time dependency. + + + + Another, more manual, way to check a recipe for missing build-time + dependencies of the first type is to build with an empty staging + sysroot. + An easy way to do this build is to simply remove + TMPDIR, + which is usually + ${BUILDDIR}/tmp, + as it includes the staging sysroots. + + + + Another, faster method to remove the staging sysroot is to use the + scripts/wipe-sysroot script, which removes + just the staging sysroots and keeps everything else in + TMPDIR. + + The scripts/ directory appears in + PATH after running the build environment + initialization script (i.e. + oe-init-build-env + or + oe-init-build-env-memres), + which results in the ability to to run + wipe-sysroot immediately. + + + +
+ +
Dependency Graphs