assembly 为arm32构建GLIB时asm中的输出约束“=d”无效(Windows)

snvhrwxg  于 2022-12-13  发布在  Windows
关注(0)|答案(1)|浏览(96)

我尝试构建GLIB并对其进行交叉编译(针对ARM 32上的Windows),但当编译到valgrind.h/gslice.c时,它失败了,并说:

error: invalid output constraint '=d' in asm

我看了看周围,但我没有看到任何人有“=d”失败的问题,从来没有。编译器是LLVM-MinGW(基于clang 10/llvm/lld的MinGW工具链),Linux发行版是Pop!_OS 20.04,一切都更新了。任何帮助都很感激!
谢谢

b5buobof

b5buobof1#

并非所有定义__GNUC__的语句都支持asm语句的标志输出;
特别是macOS上的某些Clang版本不支持。
根据愚者文档,正确的测试是__GCC_ASM_FLAG_OUTPUTS__,因此请使用该测试。
请在以下位置查看Patch中的详细信息:
https://github.com/google/snappy/commit/8dd58a519f79f0742d4c68fbccb2aed2ddb651e8

相关问题