On Nov 10, 2008, at 2:18 PM, Oleg V. Zhylin wrote:
>> Right -- OMPI builds shared libraries by default.
> What is the proper way to build static libraries from RPM? Or
> tarball is the only option to accomplish this?
You can pass any options to OMPI's configure script through the
rpmbuild interface, such as:
--define 'configure_options CFLAGS=-g --with-openib=/usr/local/
ofed --disable-shared --enable-static' ...
But be aware that static linking is not for the weak, especially if
you're using high-speed networks. Check out both of these:
>> Really? That's odd -- our mpif90 simply links against
>> -lmpi_f90, not specifically .a or .so. You can run
>> "mpif90 --showme" to see the command that our
>> wrapper *would* execute. You can also tweak the flags that
>> OMPI passes to the wrapper compilers; see this FAQ entry:
> Well, I suppose if removing -lmpi_f90 and other mpi libs from
> command-line would defeat the purpose of building an MPI executable.
> Moreover ld manual page says that on platforms that support shared
> libraries it looks for .so first and .a after that.
That's pretty standard behavior that has been around for forever.
> But I've tried Fedora Core 6 and 9 and both give same result and on
> both strace shows that ld doesn't attempt to look for libmpi_f90.so
> at all.
Are you saying that you have libmpi_f90.so available and when you try
to run, you get missing symbol errors? Or are you failing to compile/
link at all?
> Does anyone has experience building MPI on Fedora?
FWIW: building on Fedora should be little different than building on
other Linux systems.
> Are there any additional steps required other then yum install
I always build via source (but I'm a developer, so my bias is a little
different ;-) ). I'm unfamiliar with Fedora's yum repositories...