gpt4 book ai didi

linux-kernel - 使用 Ubuntu 21.10 构建时出现 Buildroot 错误

转载 作者:行者123 更新时间:2023-12-05 04:43:05 32 4
gpt4 key购买 nike

我正在尝试使用 buildroot(busybox) 为 RISCV Arch 编译 linux。我之前使用的是 18.04 和 20.04,编译时没有遇到任何问题。现在,我已将其升级到 21.10 以构建其他一些东西。我已经移动了我的工具链,我可以使用 which 命令找到它。当我尝试编译 linux 时,我遇到了一些在早期版本中没有遇到过的错误。

>>> host-m4 1.4.18 Building

In file included from /usr/include/signal.h:328,
from ./signal.h:52,
from c-stack.c:49:
c-stack.c:55:26: error: missing binary operator before token "("
55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
| ^~~~~~~~
CC closein.o
c-stack.c:134:8: error: variably modified 'buffer' at file scope
134 | char buffer[SIGSTKSZ];
| ^~~~~~
CC closeout.o

我对不同版本如何导致此错误感到困惑。

提前致谢。

最佳答案

看起来您在 GNU C 库版本 2.34 中做了一个更改,它可以使 SIGSTKSZ 非常量。

来自GNU C Library 2.34 release announcement :

  • Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, MINSIGSTKSZ and SIGSTKSZ are no longer constant on Linux. MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ) and SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ). This supports dynamic sized register sets for modern architectural features like Arm SVE.

一个可能的解决方法是配置 buildroot 来构建 host-m4 版本 1.4.19 而不是 1.4.18,因为它不再使用 SIGSTKSZ

关于linux-kernel - 使用 Ubuntu 21.10 构建时出现 Buildroot 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69719688/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com