Я пытаюсь написать рецепт Yocto для создания проекта Go lang для целевой платформы x86_64 (ветка rocko). Мой рецепт yocto отлично строит проект Go, разрешая зависимости с помощью инструмента dep
. Но созданный двоичный файл не работает на целевой платформе. При попытке выполнить его на цели я получаю эту ошибку:
$ /usr/bin/mybin
abi mismatch detected between the executable and libstd.so
fatal error: abi mismatch
runtime: panic before malloc heap initialized
Это мой собственный рецепт для сборки проекта:
GO_IMPORT = "bitbucket.org/xxx/myproject"
SRC_URI = "git://${GO_IMPORT}/protocol=http;user=${GIT_USER}:${GIT_PASS};destsuffix=${PN}-${PV}/src/${GO_IMPORT}"
SRCREV = "7777ee7777777c9777774bb777780777759d777771777"
CGO_ENABLED = "0"
inherit go
do_compile_prepend() {
rm -f ${WORKDIR}/build/src/${GO_IMPORT}/Gopkg.toml
rm -f ${WORKDIR}/build/src/${GO_IMPORT}/Gopkg.lock
cd ${WORKDIR}/build/src/${GO_IMPORT}
dep init
dep ensure
}
do_install_append() {
rm -f ${D}/usr/bin/dep
}
deltask do_compile_ptest_base
deltask do_compile_ptest
DEPENDS = "go-dep-native mercurial-native"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
RDEPENDS_${PN}-staticdev += "bash"
RDEPENDS_${PN}-dev += "bash"
Каким должен быть правильный способ решения этой проблемы?