Occa: La compilación falla con el compilador PGI

Creado en 28 abr. 2020  ·  7Comentarios  ·  Fuente: libocca/occa

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.

bug

Todos 7 comentarios

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

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

tcew picture tcew  ·  22Comentarios

jeremylt picture jeremylt  ·  12Comentarios

amikstcyr picture amikstcyr  ·  11Comentarios

tcew picture tcew  ·  10Comentarios

dmed256 picture dmed256  ·  4Comentarios