La compilación falla cuando se usa PGI Community Edition Versión 19.10 .
El error parece deberse a una ruta de inclusión incorrecta. Sin embargo, especificarlo explícitamente ( make OCCA_INCLUDE_PATH=/opt/pgi/linux86-64-llvm/19.10/include
) no resuelve el problema.
El mensaje de error real es:
/opt/pgi/linux86-64-llvm/19.10/bin/pgc++ -O3 -fast -Mipa=fast,inline -Msmartalloc -std=c++11 -fPIC -o /path/to/occa/obj/modes.o -mp -c -I/path/to/occa/include -I/opt/pgi/linux86-64-llvm/19.10/include -I/usr/include -I/path/to/occa/src /path/to/occa/src/modes.cpp
pgc++-Warning--Mipa is not supported for this target
"/usr/include/c++/9/cstdlib", line 75: catastrophic error: cannot open source
file "stdlib.h"
#include_next <stdlib.h>
^
1 catastrophic error detected in the compilation of "/path/to/occa/src/modes.cpp".
Compilation terminated.
make: *** [Makefile:132: /path/to/occa/obj/modes.o] Error 2
Esto está en un sistema Fedora 31 Linux que viene con gcc 9.3.1.
No puedo reproducir esto con mi compilador PGI 20.1
¿Está utilizando la compilación CMake o la compilación make?
Solo los Makefiles normales, ni siquiera he probado cmake para occa.
¿En qué edición y plataforma de PGI se encuentra? ¿Está utilizando cmake o Makefiles?
Estoy usando CMake exclusivamente. Usando PGI 20.1 (creo que es esta edición profesional ) en CentOS 7.7, pero la pila de software consta de módulos EasyBuild, por lo que la mayoría de las inclusiones/bibliotecas que son relevantes no son inclusiones/bibliotecas del sistema.
Bueno, ¿puedes probarlo con una marca clásica entonces? No tengo acceso a PGI 20.1.
Puedo intentarlo la próxima semana (ya no está en el trabajo), y le pediría que pruebe la variante CMake también para que nuestras pruebas sean simétricas.
Probé con un repositorio de occa limpio y make -j4
y no obtuve errores.
pgc++ -O3 -fast -Mipa=fast,inline -Msmartalloc -std=c++11 -fPIC -o /path/to/occa/obj/modes.o -mp -c -I/path/to/occa/include -I/path/to/occa/include -I/path/to/occa/src /path/to/occa/src/modes.cpp
$ pgc++ --version
pgc++ 20.1-0 LLVM 64-bit target on x86-64 Linux -tp haswell
PGI Compilers and Tools
Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
Cerrando ya que no podemos reproducir