首页 > 解决方案 > 错误:立即不能被单个移动

问题描述

我正在尝试为 aarch64 编译 glibc-2.30。我正在使用非常基本的配置:

../configure \
  --with-headers=/tmp/headers/include \
  --disable-sanity-checks \
  --enable-kernel=3.18.0

配置时没有错误,但运行“make”时出现以下错误:

../sysdeps/unix/syscall-template.S: Assembler messages:
../sysdeps/unix/syscall-template.S:78: Error: immediate cannot be moved by a single instruction

我假设我必须添加一个 aarch64 特定的配置参数?

标签: linuxgccmakefileglibc

解决方案


AArch64 汇编器在遇到无法在寄存器中编码的常量时发出此错误消息。系统调用包装器中唯一的常量是系统调用号,因此这表明您的内核头文件用于错误的体系结构,并且系统调用号与 AArch64 不兼容。(内核头文件是特定于体系结构的,在交叉编译时必须使用交叉编译器安装。)


推荐阅读