You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS Stream8编译multilib版riscv-gnu-toolchain报stubs-ilp32.h缺失错误

报错根因

该报错和宿主CentOS Stream 8安装的x86_64、i686版本glibc-devel无关,报错路径指向的是工具链编译过程中生成的RISC-V架构sysroot目录,触发原因是启用--enable-multilib参数时,默认配置没有完整触发ilp32(32位RISC-V)版本glibc的头文件生成流程,导致stubs-ilp32.h没有被正确构建出来。

修复操作
  • 首先清理之前的半完成编译残留,在riscv-gnu-toolchain源码根目录执行以下命令:
make distclean
rm -rf /opt/riscv/sysroot
  • 配置阶段显式指定multilib支持的ABI与架构列表,避免默认自动检测漏过32位目标:
export RISCV=/opt/riscv
./configure --prefix="${RISCV}" --enable-multilib --with-multilib-list=rv32imac-ilp32,rv64imafdc-lp64d
  • 按顺序分步编译,先单独构建Linux头文件、多架构glibc,再完成整体编译,避免并行编译时的目标依赖顺序错乱:
make linux-headers
make build-glibc
make linux -j$(nproc)
  • 如果执行上述步骤后仍报错,先安装CentOS Stream 8下缺失的32位宿主兼容库,再切到更高版本GCC进行编译——CentOS Stream 8默认自带的GCC 8.5存在隐式函数声明报错,会中断32位glibc的构建流程:
dnf install -y libgcc.i686 libstdc++-devel.i686 gcc-toolset-12
scl enable gcc-toolset-12 bash
# 重新执行上述配置、编译流程即可

以上配置的multilib支持列表完全覆盖seL4在Spike平台所需的32位、64位RISC-V运行要求,不需要调整编译参数适配。

内容的提问来源于stack exchange,提问作者FirmwareRootkits

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 04:54:37