Open jeizenga opened 6 years ago
Also potentially relevant:
> g++ --version
g++ (MacPorts gcc49 4.9.3_0) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@tetzank I thought -march=native would fix those problems?
Apparently I'm not the only one whose Mac has problems with it: https://stackoverflow.com/questions/10327939/error-no-such-instruction-while-assembling-project-on-mac-os-x
This also seems to be discussed here: https://stackoverflow.com/questions/9840207/how-to-use-avx-pclmulqdq-on-mac-os-x
seems like the main issue is that the GNU assembler is not supported on OSX. Do any of these workarounds help?
The assembler seems to be too old. It doesn't know about the AVX2 and BMI{1,2} instruction set extensions which the compiler happily created as it detected that the CPU supports them.
Can you upgrade to a newer toolchain? The GNU assembler is part of binutils. Or switch to clang and the assembler they provide.
I got it to assemble using the -Wa,-q flag, which makes it use the clang assembler after compilation. It makes a bunch of annoying warnings about the temporary files that the compiler writes, but at least it works. You can also get the same behavior by AS_INTEGRATED_ASSEMBLER=1 before invoking the install script. In both cases, MacPorts clang needs to be installed and selected. I used the clang-3.8 port.
Running
./install.sh
errors out with a bunch of complaints about missing assembly instructions (stderr output below). The same errors occur with theNO_SSE42=1
flag provided as in the readme. I was able to reproduce the error on306de91
, but I had a successful build onf36b678
, so I suspect that the-march=native
flag is to blame. My machine is running OSX El Capitan 10.11.6.Error output: