| #!/bin/bash |
| # Copyright 2021 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Wrapper for `ldd` in cross-compilation situations. |
| # |
| # gobject-introspection uses `ldd` to inspect the dynamically linked |
| # dependencies of small binaries it compiles during its build process, but doing |
| # so requires executing the dynamic loader for that target. This is typically |
| # not possible in a cross-compilation environment so chromite provides a pure |
| # Python script that mimics the interface of `ldd` for inspecting dynamically |
| # linked dependencies. |
| # |
| # We explicitly pass $SYSROOT as the "root" argument so that `lddtree` knows to |
| # look for all dependencies in the build target's sysroot. |
| |
| # We also pass the --no-auto-root option so that `lddtree` won't implicitly add |
| # the provided root as a prefix to all paths passed as arguments, otherwise |
| # paths would end up doubly-prefixed, e.g. |
| # '/build/$board/build/$board/usr/lib/foo'. |
| |
| "${CHROMITE_BIN_DIR}"/lddtree \ |
| -R "${SYSROOT}" \ |
| --no-auto-root \ |
| "${@}" |