PyTrilinos: Conflicting types in Teuchos_BLAS_wrapper.hpp
Created by: wfspotz
@trilinos/pytrilinos @trilinos/teuchos @trilinos/kokkos-kernels
Expectations
I expect to build PyTrilinos without compilation errors
Current Behavior
I have a wrapper file that #include
s the header MLAPI_MultiVector.h
which gives the compilation error
/Development/Trilinos/packages/teuchos/numerics/src/Teuchos_BLAS_wrappers.hpp:173:13: error: conflicting types for 'daxpy_'
void PREFIX DAXPY_F77(const int* n, const double* alpha, const double x[], const int* incx, double y[], const int* incy);
^
/Development/Trilinos/packages/teuchos/numerics/src/Teuchos_BLAS_wrappers.hpp:78:21: note: expanded from macro 'DAXPY_F77'
#define DAXPY_F77 F77_BLAS_MANGLE(daxpy,DAXPY)
^
/Development/Trilinos/MPI/packages/teuchos/core/src/Teuchos_config.h:10:37: note: expanded from macro 'F77_BLAS_MANGLE'
#define F77_BLAS_MANGLE(name,NAME) name ## _
^
<scratch space>:23:1: note: expanded from here
daxpy_
^
/Development/Trilinos/packages/kokkos-kernels/src/impl/tpls/KokkosBlas1_axpby_tpl_spec_decl.hpp:49:17: note: previous declaration is here
extern "C" void daxpy_( const int* N, const double* alpha,
Definition of Done
I can get the PyTrilinos package to build and all of the PyTrilinos tests to pass.
Possible Solution
I'm not sure why this conflicting type declaration is occurring, but it is clearly related to macro expansion. Based on git blame
of Teuchos_BLAS_wrapper.h
I'm hoping either @jwillenbring or @hkthorn might have some idea what the problem could be. PyTrilinos can present some unique configuration issues.
Steps to Reproduce
If it gets to this, I can help someone set up their environment to build PyTrilinos.