Зависимости библиотек, развернутых в Yocto bin_package - PullRequest
0 голосов
/ 17 июня 2020

У меня странная проблема с зависимостями библиотек при использовании Yocto. Я собираю Yocto на двух разных машинах, M_a и M_b, с точно такой же версией Linux (Ubuntu 16.04.6 LTS).

tarball libs.tar.bz2 развертывает некоторые библиотеки в моих rootfs используя «наследование bin_package». Рецепт очень прост:

$ cat recipe_0.1.bb
inherit bin_package
S = "${WORKDIR}/prebuilt"
SRC_URI = "file://libs.tar.bz2"
INSANE_SKIP_${PN} += "dev-so"
INSANE_SKIP_${PN} = "ldflags"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"

Библиотеки, включенные в tarball, правильно развернуты в окончательных rootfs при сборке на машине M_a.

Однако при сборке на машине M_b я получить сообщение об ошибке:

ERROR: recipe-0.1-r0 do_package_qa: QA Issue: /usr/lib/libcustom.so contained in package recipe requires libglib-2.0.so.0()(64bit), but no providers found in RDEPENDS_recipe? [file-rdeps]

Мой вопрос: некоторые из вас знают, как Yocto извлекает список зависимостей каждой библиотеки, включенной в архив? Я хотел бы выполнить эту команду на M_a и M_b, чтобы сравнить результаты и выяснить, чего не хватает ... Заранее большое спасибо!

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Я проверил вывод objdump -p libcustom.so | grep NEED, а на выходе - один и тот же набор библиотек на машинах M_a и M_b.

Однако я обнаружил, что файл recipe.spe c, сгенерированный в workdir, содержит разные наборы библиотек (libusb : 386 и libsystemd: 386 появляются на одной машине, а не на другой). Для меня это звучит очень странно, поскольку я понимаю, что Yocto - это не инструмент, который зависит от хост-машины, на которой выполняется компиляция.

M_a и M_b имеют разные наборы установленных пакетов, но оба они имеют минимальный набор библиотек, необходимых для сборки Yocto. Но существует более 100 различных пакетов, и обнаружить пакет, который нарушает декомпиляцию, довольно сложно, поскольку каждая компиляция занимает много времени.

0 голосов
/ 17 июня 2020
• 1000 архивы:
objdump -p libcustom.so | grep NEEDED
...