On 10/30/20 9:30 PM, Mark Olesen wrote:
I need to follow up on my own post - still haven't figured out
how the
RPM requires are done.
In the first step, I've completely stripped out my package so that it
only builds a simple library (pretty much an mpi "hello world"), and
an executable to call it. Wrapped them in a spec file, and these also
only create a dependency on
libmpi.so.40()(64bit)
For comparison, I've rebuilt libptscotch (mpich and openmpi) using
sources and specs pulled from the srpm. These rpms build correctly
*and* they also have the expected dependency on
libmpi.so.40()(64bit)(openmpi-x86_64)
I don't understand how the rpm dependency check on the built libraries
works in one case, but not in the other.
The only thing I can imagine is that for the ptscotch build, it uses
mpicc instead of gcc + libraries. But even so, how is that information
propagate through the libraries?
Are you only adding the libraries?
The mpi wrapper does varies things, and generally MPI expects to be
called using the wrappers.
openmpi's mpicc adds these flags: -I/usr/include/openmpi-x86_64 -pthread
-Wl,-rpath -Wl,/usr/lib64/openmpi/lib -Wl,--enable-new-dtags
-L/usr/lib64/openmpi/lib -lmpi
A link to the copr builds would be useful to see what flags you have
been using.
I would also suggest to try to build with mpicc and see whether that
fixes the issue.
Any hints, even a polite "rtfm" with the name of the docs I am missing
would be very welcome at this point.
Thanks,
/mark
On 2020-10-22 13:47, Mark Olesen wrote:
> This will presumably also affect Fedora, but need to recheck.
> We are experiencing some very odd build behaviour using copr to
> compile for various Fedora and CentOS/RedHat versions
> (
https://copr.fedorainfracloud.org/coprs/openfoam/openfoam).
>
> The built package on centos8 is automatically given the requirement
>
> - libmpi.so.40()(64bit)
>
> But the openmpi package actually provides
>
> - libmpi.so.40()(64bit)(openmpi-x86_64)