Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Ralf Wildenhues (Ralf.Wildenhues_at_[hidden])
Date: 2006-03-21 08:35:16


* Josh Hursey wrote on Tue, Mar 21, 2006 at 02:20:54PM CET:
> >>On Mar 20, 2006, at 12:13 PM, Ralf Wildenhues wrote:
> >>>
> >>>Do you still have the complete build log? The place where
> >>>libopal is
> >>>created is interesting, as well as './libtool --config'.

> The files should be attached.

Ahh. That explains it:

| /bin/sh ../libtool --tag=CC --mode=link pgcc -O -DNDEBUG -export-dynamic -o libopal.la -rpath /san/homedirs/jjhursey/local/odin//ompi/release/lib libltdl/libltdlc.la asm/libasm.la class/libclass.la event/libevent.la mca/base/libmca_base.la memoryhooks/libopalmemory.la runtime/libruntime.la threads/libthreads.la util/libopalutil.la mca/maffinity/base/libmca_maffinity_base.la mca/memory/base/libmca_memory_base.la mca/memory/malloc_hooks/libmca_memory_malloc_hooks.la mca/paffinity/base/libmca_paffinity_base.la mca/timer/base/libmca_timer_base.la mca/timer/linux/libmca_timer_linux.la -lm -lutil -lnsl -lpthread
| mkdir .libs
| pgcc -shared -fpic -DPIC -Wl,--whole-archive,libltdl/.libs/libltdlc.a,asm/.libs/libasm.a,class/.libs/libclass.a,event/.libs/libevent.a,mca/base/.libs/libmca_base.a,memoryhooks/.libs/libopalmemory.a,runtime/.libs/libruntime.a,threads/.libs/libthreads.a,util/.libs/libopalutil.a,mca/maffinity/base/.libs/libmca_maffinity_base.a,mca/memory/base/.libs/libmca_memory_base.a,mca/memory/malloc_hooks/.libs/libmca_memory_malloc_hooks.a,mca/paffinity/base/.libs/libmca_paffinity_base.a,mca/timer/base/.libs/libmca_timer_base.a,mca/timer/linux/.libs/libmca_timer_linux.a -Wl,--no-whole-archive -ldl -lm -lutil -lnsl -lpthread -lc -Wl,-soname -Wl,libopal.so.0 -o .libs/libopal.so.0.0.0
| pgcc-Warning-No files to process

PGI/5.2 does not like it when it's not given any object file, and it's
supposed to invoke the linker. It does not see the libraries, as they
are all hidden as arguments to be passed to the linker. This has been
fixed since in PGI/6.0 and 6.1.

Nevertheless, there are probably more compilers which can fail in this
way. I added a test to this extent to the CVS version of Libtool a
while ago, in order to gain more knowledge about this.

The gist is: this could *probably* be worked around inside libtool.
But it would not solve all issues, when looking at the bigger picture
of Libtool+Automake interaction.

Why is that? Well, you write
  libfoo_la_SOURCES =
  libfoo_la_LIBADD = libbar1.la libbar2.la ...

but then Automake does not really know which language (compiler) to use
for linking libfoo. And this second issue is not so trivial to solve
inside the autotools.

But an easy workaround for the moment is to either add a dummy source
file to libfoo_la_SOURCES, or change one of the convenience archives
libbar* added into just the objects being added.

I did not notice this issue here, because the OpenMPI trunk does exactly
the latter (for example through opal/class/Makefile.am, which is
included in opal/Makefile.am), and I do not follow branches much.

Does that help?

Cheers,
Ralf