coin-or / Clp

COIN-OR Linear Programming Solver
Other
396 stars 82 forks source link

build failure with mumps and MPI #199

Closed Alessandro-Barbieri closed 3 years ago

Alessandro-Barbieri commented 3 years ago

Configured with ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --libdir=/u sr/lib64 --enable-dependency-linking --with-coin-instdir=/var/tmp/portage/sci-libs/coinor-clp-1.17.6-r1/image/usr --without-dot --without-glpk --without-amd --without-cholmod --without-metis --with-mumps-incdir=/usr/include --with-mumps -lib=-lmumps_common -ldmumps -lzmumps -lsmumps -lcmumps -lmpiseq

I'm on gentoo and I'm using system libraries

In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/bits/stl_algobase.h:60,                                                                                                                                       
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/bits/stl_tree.h:63,                                                                                                                                           
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/map:60,                                                                                                                                                       
                 from /usr/include/openmpi/ompi/mpi/cxx/mpicxx.h:42,                                                                                                                                                                        
                 from /usr/include/x86_64-pc-linux-gnu/mpi.h:2887,                                                                                                                                                                          
                 from /usr/include/mpi.h:10,                                                                                                                                                                                                
                 from ClpCholeskyMumps.cpp:21:                                                                                                                                                                                              
/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/bits/functexcept.h:101:3: error: conflicting declaration of C function 'void std::__throw_ios_failure(const char*, int)'                                                            
  101 |   __throw_ios_failure(const char*, int) __attribute__((__noreturn__));                                                                                                                                                              
      |   ^~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                               
/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/bits/functexcept.h:98:3: note: previous declaration 'void std::__throw_ios_failure(const char*)'                                                                                    
   98 |   __throw_ios_failure(const char*) __attribute__((__noreturn__));                                                                                                                                                                   
      |   ^~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                               
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/bits/stl_algobase.h:63,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/bits/stl_tree.h:63,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/map:60,
                 from /usr/include/openmpi/ompi/mpi/cxx/mpicxx.h:42,
                 from /usr/include/x86_64-pc-linux-gnu/mpi.h:2887,
                 from /usr/include/mpi.h:10,
                 from ClpCholeskyMumps.cpp:21:
/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/ext/numeric_traits.h:50:3: error: template with C linkage
   50 |   template<typename _Tp>
      |   ^~~~~~~~
ClpCholeskyMumps.cpp:14:1: note: 'extern "C"' linkage started here
   14 | extern "C" {
      | ^~~~~~~~~~
svigerske commented 3 years ago

If you are on Clp 1.17, then try removing the extern "C" { around

https://github.com/coin-or/Clp/blob/a4b69e02ff4dafab0ec4ee23e502421065b8d195/Clp/src/ClpCholeskyMumps.cpp#L14-L23

Alessandro-Barbieri commented 3 years ago

Thanks