OpenBLAS: 0.3.7 fails to compile with PGI 19.4
After adding HOSTCC=cc I was able to build 0.3.7 with PGI version 18.10. However, for PGI version 19.4, the build fails with compiler error:
pgcc -c -O2 -DMAX_STACK_ALLOC=2048 -mp -tp p7-64 -DF_INTERFACE_PGI -fPIC -DNO_AVX512 -DSMP_SERVER -DUSE_OPENMP -DNO_WARMUP -DMAX_CPU_NUMBER=80 -DMAX_PARALLEL_NUMBER=1 -DVERSION=\"0.3.7\" -DASMNAME=drot_k -DASMFNAME=drot_k_ -DNAME=drot_k_ -DCNAME=drot_k -DCHAR_NAME=\"drot_k_\" -DCHAR_CNAME=\"drot_k\" -DNO_AFFINITY -I.. -DDOUBLE -UCOMPLEX -UCOMPLEX -UCOMPLEX -DDOUBLE ../kernel/x86_64/rot_sse2.S -o drot_k.o
PGC-F-0249-#error -- "MMX instruction set not enabled" (/apps/pgi/linux86-64-llvm/19.4/include/pgi/mmintrin.h: 27)
PGC/x86-64 Linux 19.4-0: compilation aborted
make[1]: *** [sgemm_oncopy.o] Error 2
make[1]: *** Waiting for unfinished jobs....
PGC-F-0249-#error -- "MMX instruction set not enabled" (/apps/pgi/linux86-64-llvm/19.4/include/pgi/mmintrin.h: 27)
PGC/x86-64 Linux 19.4-0: compilation aborted
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/amax_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/amax_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/iamax_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/amax_sse2.S: -1)
make[1]: *** [sgemm_beta.o] Error 2
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/amax_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/copy_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/iamax_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/iamax_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/iamax_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/rot_sse2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/nrm2.S: -1)
PREPRO-I-0222-Redundant definition for symbol __extension__ (../kernel/x86_64/asum_sse2.S: -1)
make[1]: Leaving directory `/path/to/OpenBLAS/0.3.7/pgi/19.4/kernel'
make: *** [libs] Error 1
My build command was:
make USE_OPENMP=1 CC=pgcc CXX=pgc++ FC=pgfortran F90=pgfortran F77=pgfortran HOSTCC=cc
Any hints would be appreciated.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 19 (3 by maintainers)
FYI - the “instruction set not enabled” error should now be fixed as of the PGI 19.9 release. If you are using the PGI CE, the fix should be available when the PGI 19.10 CE is released.