Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] RFC: MCA DSO filename
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2008-07-28 10:19:28

WHAT: Rename MCA DSO filenames from "mca_<framework>_<component>.so"
to "libmca_<framework>_<component>.so" (backwards compatibility can be
preserved if we want it; see below)

WHY: Allows simplifying component's

WHEN: No real rush; just wanted to get the idea out there (does *not*
need to be before v1.3; more explanation below)

WHERE:, some stuff in opal/mca/base, and every component's

TIMEOUT: Fri, 8 Aug 2008


In reviewing some old SVN/HG trees that I had hanging around, I
discovered one about significantly simplifying (and slightly
optimizing) component's. I believe that these ideas came
from Brian, Ralf, and possibly others. Here's a "simple" current (the TCP BTL):

At the end of this mail, I include what the meat of the TCP BTL can be reduced to.

However, to do this, we need to use the same output filename for both
the static and dynamic builds (i.e., as a standalone DSO and as a
convenience LT library). Libtool will complain if we build a
convenience library with a filename that does not begin with "lib".

Note that there are two parts involved:

1. touching each and converting to the simpler format.
2. converting the MCA base to look for "libmca_<fw>_<comp>"
filenames. NOTE: we can optionally have the MCA base *also* look for
the old-style name "mca_<fw>_<comp>" if backwards compatibility is

Because of the backwards compatibility possibility, there is no need
to do this before v1.3 -- it could be done for v1.3.x or even v1.4
(there's no real rush). It's just an idea that has been around for a
while, so I thought I'd turn it into an RFC. If the community agrees,
I'll likely file a ticket about this and we'll get to it someday.

Below is what the TCP BTL can be reduced to (compare the
end of this file to the end of the current TCP BTL Note
that the whole "if" logic at the end could possibly be hidden in
autogen -- I haven't thought that through, but it's a possibility (we
can't hide that stuff in autogen until we unify the output filename;
we can't do it in today's build system, for example).

libmca_btl_tcp_la_SOURCES = \
     btl_tcp.c \
     btl_tcp.h \
     btl_tcp_addr.h \
     btl_tcp_component.c \
     btl_tcp_endpoint.c \
     btl_tcp_endpoint.h \
     btl_tcp_frag.c \
     btl_tcp_frag.h \
     btl_tcp_hdr.h \
     btl_tcp_proc.c \
     btl_tcp_proc.h \
     btl_tcp_ft.c \
libmca_btl_tcp_la_LDFLAGS = -module -avoid-version

if OMPI_BUILD_btl_tcp_DSO
mcacomponentdir = $(pkglibdir)
mcacomponent_LTLIBRARIES =

Jeff Squyres
Cisco Systems