On 2018/01/13 14:40, Stuart Henderson wrote: > On 2018/01/13 15:12, Rafael Sadowski wrote: > > I run into the following GCC compile error. Any ideas? > > > % -> CC=egcc CXX=eg++ make -j8 > > % ===> Building for botan2-2.4.0 > > % eg++ -fstack-protector -m64 -pthread -mavx2 -fPIC -fvisibility=hidden > > -std=c++11 -D_REENTRANT -O2 -pipe -Wall -Wextra -Wpedantic -Wshadow > > -Wstrict-aliasing -Wstrict-overflow=5 -Wcast-align -W > > % missing-declarations -Wpointer-arith -Wcast-qual > > -I/usr/ports/pobj/botan2-2.4.0/build-amd64/build/include > > -I/usr/ports/pobj/botan2-2.4.0/build-amd64/build/include/external > > -I/usr/local/includ > > % e -c > > /usr/ports/pobj/botan2-2.4.0/Botan-2.4.0/src/lib/block/threefish/threefish_avx2/threefish_avx2.cpp > > -o > > /usr/ports/pobj/botan2-2.4.0/build-amd64/build/obj/lib/block_threefish_avx2.o > > % {standard input}: Assembler messages: > > % {standard input}:26: Error: no such instruction: `vmovq 24(%r8),%xmm3' > > % {standard input}:27: Error: no such instruction: `vpinsrq > > $1,40(%r8),%xmm3,%xmm0' > > % {standard input}:28: Error: no such instruction: `vmovq 8(%r8),%xmm1' > > > > % {standard input}:29: Error: no such instruction: `vmovq 64(%r8),%xmm6' > > > > % {standard input}:30: Error: no such instruction: `vpunpcklqdq > > %xmm3,%xmm1,%xmm3' > > % {standard input}:31: Error: no such instruction: `vpunpcklqdq > > %xmm1,%xmm6,%xmm4' > > % {standard input}:32: Error: no such instruction: `vinserti128 > > $0x1,%xmm0,%ymm4,%ymm6' > > % {standard input}:33: Error: no such instruction: `vmovdqa > > %ymm6,-144(%rbp)' > > % {standard input}:34: Error: no such instruction: `vmovq 32(%r8),%xmm6' > > > > % {standard input}:35: Error: no such instruction: `vpinsrq > > $1,48(%r8),%xmm6,%xmm0' > > % {standard input}:36: Error: no such instruction: `vmovq (%r8),%xmm6' > > > > % {standard input}:37: Error: no such instruction: `vpinsrq > > $1,16(%r8),%xmm6,%xmm9' > > % ... > > GCC uses binutils assembler, our version is too old to know these > instructions. > > Clang has an integrated assembler. >
...Also, I don't think the gcc -m options (like -mavx2 here) do a cpuid check, if that's true they can't be used for ports.