/var/folders/ps/sfjmtgx5771_qbqnh4c9xclr0000gn/T//ccEAWWhd.s:16:no such
instruction: `pclmulqdq $0, %xmm0,%xmm1'我已经使用macports安装了binutils,但问题仍然存在。我怎么知道gcc用的是哪个汇编器?XCode汇编程序可能不支持它,但binutils汇编程序应该支持它。
发布于 2013-10-13 14:40:38
为我解决这个问题的一个更简单的解决方案是将-Wa,-q添加到编译器标志。从as (版本1.38)的手册页:
-q将使用clang(1)集成汇编程序,而不是基于GNU的系统汇编程序。
就像-Wl将参数传递给链接器一样,-Wa部件将它从编译器驱动程序传递给汇编器。
发布于 2012-04-14 04:31:06
Mac OS X不支持GNU汇编程序(GAS)。
为了使用AVX,我必须:
使用MacPorts;
奇怪的是,虽然clang汇编程序支持AVX,但clang编译器无法识别AVX instrinsics,这迫使上面丑陋的变通方法。
发布于 2013-05-14 02:53:36
as的内置版本已过时。(在OS X 10.8.3中)
/usr/libexec/as/x86_64/as -v
Apple Inc.版本cctools-839,GNU汇编程序版本1.38
似乎还没有针对OS的gas版本。(参见:Installing GNU Assembler in OSX)
通过脚本hack使用clang汇编程序(如Conrado PLG所指出的)是一种变通方法。但是,它确实需要管理员权限并覆盖OS X捆绑的可执行文件,这会导致它被与OS X的未来版本捆绑在一起的新版本(但可能已过时)覆盖。
那么有没有更好的变通办法呢?
正如在Why does cross gcc invoke native 'as'?上提到的,似乎可以指定使用哪个" As "-executable和标志(使用"-specs=...")。对于这个问题,一个更清晰的解决方法似乎是传递正确的"-specs“标志来调用clang汇编程序。这不需要管理员权限,也不会有被OS X更新破坏的风险。如何执行此操作的确切细节仍有待查明(有人吗?)。
如果这个变通方法变得足够容易和透明,那么可以保证使用这些设置作为may端口的默认设置(或者至少是变体),以使其支持"-march=native“等。有这样的前缀设置(“-- configure.args - as =${prefix}/bin/ as”,如https://trac.macports.org/browser/trunk/dports/lang/gcc48/Portfile中所示),可以替换。
https://stackoverflow.com/questions/9840207
复制相似问题