Assembly `-Wa,-divide`选项在Clang或LLVM中

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的集成组件。

我正在从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选择这个选项?

气体手册上说:

在SVR4派生平台上,字符
/
被视为注释字符,这意味着它不能在表达式中使用。
--divide
选项将
/
转换为普通字符。这不会在开始注释的行的开头禁用
/
,也不会影响使用“#”开始注释

在我的Linux桌面上,
--divide
什么也不做:
作为
汇编
mov$(15/2),%eax
无论是否使用
--divide
都可以

所以你可以把它拿出来。如果这是一个问题,并且在某些平台上clang将
/
视为注释字符,那么它通常会导致构建时失败,而不是带有隐藏bug的二进制文件


是的,
-divide
显然做了与
-divide
相同的事情。但是,如果clang的汇编程序只支持更标准的double-
-
表单,您可能需要尝试
--divide