<html>#2901: ExternalLibraries-ADIOS2: detect.sh adds nonexistent MPI libraries if ADIOS2_ENABLE_SST == yes when using external ADIOS2
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Miren Radia</td></tr>
<tr><td style='text-align:right'> Status:</td><td>submitted</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'> Version:</td><td>development version</td></tr>
<tr><td style='text-align:right'> Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>EinsteinToolkit thorn</td></tr>
</table>
<p>I opened <a data-is-external-link="true" href="https://github.com/EinsteinToolkit/ExternalLibraries-ADIOS2/issues/8" rel="nofollow">an issue in the GitHub repository</a> but am opening this ticket here as suggested by Roland Haas. The GitHub issue description is below </p>
<p>In the case `ADIOS2_ENABLE_SST == yes`, after <a data-is-external-link="true" href="https://github.com/EinsteinToolkit/ExternalLibraries-ADIOS2/blob/c45b71f75756a2d4d7d9bf6f8cee3b502dc6fea7/src/detect.sh#L51" rel="nofollow">this line</a></p>
<p>```bash<br>
ADIOS2_REQ_LIBRARIES="adios2_cxx11 adios2_c adios2_core adios2_evpath adios2_atl adios2_enet adios2_ffs adios2_dill"<br>
```</p>
<p>(maybe with a fortran one too depending on that config option). Then <a data-is-external-link="true" href="https://github.com/EinsteinToolkit/ExternalLibraries-ADIOS2/blob/c45b71f75756a2d4d7d9bf6f8cee3b502dc6fea7/src/detect.sh#L85-87" rel="nofollow">later on</a>, all of these libraries are appended by `_mpi` so the full library list looks something like</p>
<p>```<br>
ADIOS2_LIBS="adios2_cxx11_mpi adios2_c_mpi adios2_core_mpi adios2_evpath_mpi adios2_atl_mpi adios2_enet_mpi adios2_ffs_mpi adios2_dill_mpi adios2_cxx11 adios2_c adios2_core adios2_evpath adios2_atl adios2_enet adios2_ffs adios2_dill"<br>
```</p>
<p>Unfortunately, looking at my Spack build of ADIOS2, I only have the following in the `lib64` directory (actually it's the same as the one built by Cactus using the `build.sh` script):</p>
<p>```<br>
cmake libadios2_c.a libadios2_core.a libadios2_cxx11.a libadios2_dill.a libadios2_evpath.a libadios2_atl.a libadios2_c_mpi.a libadios2_core_mpi.a libadios2_cxx11_mpi.a libadios2_enet.a libadios2_ffs.a<br>
```</p>
<p>I think only `adios2_cxx11 adios2_c adios2_core` (and `adios2_fortran` if enabled) should be appended by `_mpi`.</p>
<p>Note that it seems to be correct in the case ADIOS2 is built rather than using an external library (see <a data-is-external-link="true" href="https://github.com/EinsteinToolkit/ExternalLibrar
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2901/externallibraries-adios2-detectsh-adds'>https://bitbucket.org/einsteintoolkit/tickets/issues/2901/externallibraries-adios2-detectsh-adds</a></p>
</html>