如何解决如何修复“ld:警告:arm64 函数不是 4 字节对齐”警告?
我开始在 M1 mac 上编写 arm64 汇编代码。
这是非常简单的示例代码。
.global _main
_main:
mov x0,#1
ret
当我用 clang 编译这段代码时,会显示标题为链接器警告。
$ clang test.s
ld: warning: arm64 function not 4-byte aligned: _main from /var/folders/st/df0gjt9x5tl0cv7fw0xg5s9m0000gn/T/test-3c883c.o
$ ./a.out
$ echo $?
1
生成的二进制文件运行良好,但如何解决此链接器警告?
工具链版本 (Xcode 12.3)
$ clang --version
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: arm64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
写完这个问题之后。 像这样编写相同的行为 C 文件。
int main() { return 1; }
然后通过clang输出汇编代码
$ clang -S -O test.c
生成的 test.s 文件包含 .p2align 2
如果包含,则不会显示警告。
.section __TEXT,__text,regular,pure_instructions
.build_version macos,11,0 sdk_version 11,1
.globl _main ; -- Begin function main
.p2align 2
_main: ; @main
.cfi_startproc
; %bb.0:
mov w0,#1
ret
.cfi_endproc
; -- End function
.subsections_via_symbols
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。