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

Ubuntu 21.10下使用Buildroot编译RISC-V Linux出现host-m4构建错误

问题根因
  • 这个报错是Ubuntu 21.10自带的glibc版本升级导致的:glibc从2.34版本开始,将SIGSTKSZ从固定的编译期常量修改为动态返回值的宏(内部调用sysconf(_SC_SIGSTKSZ)实现),无法再用于预处理阶段的条件判断、也不能作为静态数组的长度常量使用。
  • 你当前使用的Buildroot版本内置的host-m4版本是1.4.18,这个版本的代码未适配glibc 2.34+的改动,直接把SIGSTKSZ当编译期常量使用,因此触发报错。
解决方案

你可以根据你的实际情况选择以下任意一种方案解决:

  • 方案一:升级Buildroot到2022.02及以上版本,这些版本已经将host-m4升级到1.4.19,官方已经修复了该兼容问题,无需额外修改配置即可正常编译。
  • 方案二:如果你暂时无法升级Buildroot版本,可以手动给host-m4打兼容补丁:将m4官方针对该问题的修复补丁放到Buildroot的package/m4/目录下,补丁命名符合00xx-xxx.patch的规则即可,Buildroot编译时会自动应用补丁。
  • 方案三:临时绕开问题,编译前执行如下命令强制指定SIGSTKSZ为常量值:
    export HOST_CFLAGS="$HOST_CFLAGS -DSIGSTKSZ=16384"
    
    再执行正常的Buildroot编译命令即可,该配置仅对当前shell会话生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:15:05