1

我正在将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?

4

1 回答 1

2

气体手册文档--divide说:

在 SVR4 衍生平台上,该字符/被视为注释字符,这意味着它不能在表达式中使用。该--divide选项变为/正常字符。这不会/在开始注释的行首禁用,也不会影响使用 `#' 开始注释。

在我的 Linux 桌面上,--divide什么都不做: as无论mov $(15/2), %eax有没有--divide.

所以你把它拿出来应该没问题。如果这是一个问题,并且 clang/在某些平台上确实将其视为注释字符,则通常应该导致构建时失败,而不是具有隐藏错误的二进制文件。


-divide的,显然与--divide. 但是您可能想尝试一下--divide,以防 clang 的汇编器只支持更标准的双重-形式。

于 2016-11-28T06:47:09.760 回答