Assembly `-Wa,-divide`选项在Clang或LLVM中
我正在从GCC移植到Clang,遇到以下错误消息:Assembly `-Wa,-divide`选项在Clang或LLVM中,assembly,clang,llvm,xv6,Assembly,Clang,Llvm,Xv6,我正在从GCC移植到Clang,遇到以下错误消息: clang -m32 -gdwarf-2 -Wa,-divide -c -o swtch.o swtch.S clang-3.8: error: unsupported argument '-divide' to option 'Wa,' 请注意,-Wa用于将参数传递给汇编程序,我无法确定-divide选项是什么 作为修复,目前我通过将no integrated As选项传递给Clang关闭了集成汇编程序。但我想使用Clang的集成组件。
clang -m32 -gdwarf-2 -Wa,-divide -c -o swtch.o swtch.S
clang-3.8: error: unsupported argument '-divide' to option 'Wa,'
请注意,-Wa
用于将参数传递给汇编程序,我无法确定-divide
选项是什么
作为修复,目前我通过将no integrated As
选项传递给Clang关闭了集成汇编程序。但我想使用Clang的集成组件。忽略此选项是否安全?或者有没有其他方法可以让Clang选择这个选项?气体手册上说:
在SVR4派生平台上,字符/
被视为注释字符,这意味着它不能在表达式中使用。--divide
选项将/
转换为普通字符。这不会在开始注释的行的开头禁用/
,也不会影响使用“#”开始注释
在我的Linux桌面上,--divide
什么也不做:作为汇编mov$(15/2),%eax
无论是否使用--divide
都可以
所以你可以把它拿出来。如果这是一个问题,并且在某些平台上clang将/
视为注释字符,那么它通常会导致构建时失败,而不是带有隐藏bug的二进制文件
是的,-divide
显然做了与-divide
相同的事情。但是,如果clang的汇编程序只支持更标准的double--
表单,您可能需要尝试--divide