Yocto Zeus在Podman构建时glibc_2.30.bb报asm/unistd.h缺失错误
错误原因说明
- 宿主系统版本与Yocto Zeus不兼容。Yocto 3.0(Zeus)官方要求的最低构建宿主系统为Ubuntu 18.04,你使用的Ubuntu 16.04内置的工具链、内核相关工具版本过低,无法适配Zeus版本对ARM架构头文件的生成逻辑。而更早的Jethro版本对老系统兼容性更好,所以可以正常构建。
- 内核头文件部署逻辑变更。Zeus版本的linux-headers配方不再直接将架构专属头文件复制到
recipe-sysroot/usr/include/asm/目录,改为在构建阶段根据目标架构生成对应头文件的软链接,这个逻辑依赖更高版本的宿主工具特性,Ubuntu 16.04的工具无法正确执行软链接生成步骤,导致asm/unistd.h、asm/sigcontext.h两个软链接缺失,只有你排查到的原始sigcontext-32.h和asm-generic目录下的通用头文件。 - Podman运行配置异常。如果你的Podman使用rootless模式运行,或者构建存储目录挂载的是不支持软链接的文件系统(如跨操作系统共享目录、NTFS分区),也会导致软链接生成步骤静默失败,最终出现头文件找不到的编译错误。
内容的提问来源于stack exchange,提问作者Siva Kumar
相关产品推荐
相关产品推荐

