2.3.3. 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:

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. This method can also find missing build-time dependencies that are not in the form of libraries, which the build-deps QA check is unable to find.

An easy way to empty the staging sysroots is to simply remove TMPDIR, which is usually ${BUILDDIR}/tmp, as it includes the staging sysroots. Another, faster method to empty the staging sysroots is to use the scripts/wipe-sysroot script, which removes just the staging sysroots and keeps everything else in TMPDIR.

Note

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.