Bug 31723 - libmpi_cxx is said to be deprecated, so move it to a compat subpkg?
Summary: libmpi_cxx is said to be deprecated, so move it to a compat subpkg?
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: openmpi (show other bugs)
Version: unstable
Hardware: all Linux
: P3 minor
Assignee: Andrew Savchenko
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-20 14:46 MSK by Ivan Zakharyaschev
Modified: 2016-12-28 15:23 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Zakharyaschev 2016-01-20 14:46:39 MSK
openmpi-1.6.4-alt2 includes libmpi_cxx.so.1, but it is said to be
deprecated (by libmpi) --
https://cmake.org/pipermail/cmake/2013-September/055712.html .

If it is true, programs shouldn't link with it (and cmake must do this
automatically already).

Why not move it to a subpackage (-compat), try to delete it from
Sisyphus, and detect programs that should be rebuilt.
Comment 1 Ivan Zakharyaschev 2016-01-20 14:49:05 MSK
Old libraries linked with libmpi_cxx (e.g., petsc) cause build
problems when building other new libraries which depend on petsc
(because it is checked that they shouldn't link with libmpi_cxx).
Comment 2 Ivan Zakharyaschev 2016-01-20 15:34:13 MSK
Other quotations w.r.t. the deprecated status of linking with
-lmpi_cxx :

http://hdf-forum.184993.n3.nabble.com/parallel-HDF5-H5Fclose-hangs-when-not-using-a-power-of-2-number-of-processes-td4027831.html :

                    ( on my system, for some strange reason, MPI has been compiled with the  
                    deprecated C++ bindings. I need to include -lmpi_cxx also, but that      
                    shouldn't be necessary for anyone else. I hope that's not the reason for 
                    the hang-ups. )                                                          

http://stackoverflow.com/a/12711785 :

                   Though I am not able to reproduce the problem you encountered, the following comments can be found in mpi.h, from which       
                   mpicxx.h is included:                                                                                                         
                                                                                                                                                 
                   /*                                                                                                                            
                    * Conditional MPI 2 C++ bindings support.  Include if:                                                                       
                    *   - The user does not explicitly request us to skip it (when a C++ compiler                                                
                    *       is used to compile C code).                                                                                          
                    *   - We want C++ bindings support                                                                                           
                    *   - We are not building OMPI itself                                                                                        
                    *   - We are using a C++ compiler                                                                                            
                    */                                                                                                                           
                   #if !defined(OMPI_SKIP_MPICXX) && OMPI_WANT_CXX_BINDINGS && !OMPI_BUILDING                                                    
                   #if defined(__cplusplus) || defined(c_plusplus)                                                                               
up vote 1 down     #include "openmpi/ompi/mpi/cxx/mpicxx.h"                                                                                      
vote               #endif                                                                                                                        
                   #endif                                                                                                                        
                                                                                                                                                 
                   If you are not using the deprecated C++ bindings, then a possible workaround is to add                                        
                                                                                                                                                 
                   -DOMPI_SKIP_MPICXX                                                                                                            
                                                                                                                                                 
                   to your CXXFLAGS. Hope this may help.
Comment 3 Ivan Zakharyaschev 2016-01-20 15:37:44 MSK
http://stackoverflow.com/q/11919822 :

> keep in mind that the MPI C++ interface is deprecated in MPI 2.2 and
  will be dropped completely from MPI 3.0. – Hristo Iliev Aug 13 '12
  at 7:40

These mentioned versions look much greater than ours, though (openmpi-1.6.4-alt2).
Comment 4 Denis Pynkin 2016-01-29 16:11:03 MSK
Plan to add 1.10.x into Sisyphus.
Do you really need 1.6 version?
Comment 5 Ivan Zakharyaschev 2016-01-29 22:18:47 MSK
(In reply to comment #4)
> Plan to add 1.10.x into Sisyphus.
> Do you really need 1.6 version?

Our interest is simple:

If petsc can be rebuilt with it, and it won't be linked with libmpi_cxx.so , then it's great!

Because if something is linked with the deprecated libmpi_cxx.so, it leads to problems with building other dependent packages. (cas@ knows such a case.)
Comment 6 Denis Pynkin 2016-12-28 15:23:06 MSK
Added openmpi 1.6.4 compat package.
Subpackage 'openmpi-lib-compat' contains links to 1.6.4 libraries for backward compatibility. In newer OpenMPI versions soname has been changed.