我有一个配方,可以成功调用遗留构建命令来交叉编译目标。
作为副作用,它会生成一些在构建中使用的自定义本机工具。
我想将这些工具转化为-tools-native
包允许其他食谱依赖主包来访问工件,并使用-tools-native
包以进一步处理这些工件。
我可以构建这样一个本机包,只需添加:
PROVIDES = "${PN} ${PN}-tools-native"
SYSROOT_DIRS += "/"
PACKAGES += "${PN}-tools-native"
FILES_${PN}-tools-native += "/native-bin/*"
并让安装部分将本机工具安装到 /native-bin/
但它在某种程度上并不是一个真正的本机包,当DEPENDS
通过额外的食谱native-bin artifacts are installed in
配方系统根目录instead of
配方-系统根-本机`
我还必须安装工具 0644 或 bitbake 尝试剥离它们(但失败了,因为它们是本机构建)。
因为本机工具已经由遗留构建命令生成,所以我不需要实际调用-native
食谱变体。
这是一个漫长的过程,我也不想运行两次。
目前我通过其他食谱来解决这个问题DEPEND
on recipe-native-tools
并修复权限和路径
但这样做的正确方法是什么?
这通常由单独的配方处理。没有机制可以共享目标配方中的本机二进制文件,因为它们的任务哈希中包含错误类型的信息(它们根据目标体系结构而变化)。
目标配方不会将其 bindir/sbindir 安装到 sysroot 中,因为我们无法运行它们,并且正如您所提到的,它们是错误的体系结构,因此它们会混淆 strip 等。
您可以尝试使用一个依赖于此目标配方的本机配方,并将目标配方保存的二进制文件安装到 do_install 的 ${D} 中。这很可能会发出一些警告,因为一般来说,原生配方不应该依赖于目标配方,但如果你不能构建两次,这可能是你最好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)