REAL and COMPLEX macros in chameleon public header?
COMPLEX and REAL macros are defined here (public header)
(this is substituted in generated headers by this code)
but I cannot find (with grep) any code where they are used, and they actually conflict with some C++ openmpi headers (even if you don't use the MPI c++ interface (which is deprecated), the header get pulled in anyway, as soon as openmpi was installed with the configure option '--enable-mpi-cxx')
To reproduce the following you need to have an openmpi configured with '--enable-mpi-cxx' option.
[tmijieux@tontonbox: ~]$ cat test.cpp
#include <morse.h>
#include <mpi.h>
int main()
{
return 0;
}
[tmijieux@tontonbox: ~]$ mpic++ test.cpp -I${CHAMELEON_DIR}/include/ -I${CHAMELEON_DIR}/include/chameleon -I${CHAMELEON_DIR}/include/libhqr
In file included from /usr/include/openmpi/ompi/mpi/cxx/mpicxx.h:191:0,
from /usr/include/mpi.h:2704,
from test.cpp:2:
/usr/include/openmpi/ompi/mpi/cxx/constants.h:141:28: error: declaration does not declare anything [-fpermissive]
OMPI_DECLSPEC extern const Datatype REAL;
This error basically means that REAL was substituted to an empty string, and the declaration is void.
[tmijieux@tontonbox: ~]$ mpic++ --version
g++ (GCC) 7.1.1 20170630
Copyright (C) 2017 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.
[tmijieux@tontonbox: ~]$ mpirun --version
mpirun (Open MPI) 2.1.1
Report bugs to http://www.open-mpi.org/community/help/