Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] "prefix" style guideline
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-07-09 14:33:04

On Jul 9, 2009, at 2:17 PM, Eugene Loh wrote:

> The wiki said all public symbols and filenames. I assume filenames
> may
> leave off "<layer>_". That is, the file is properly named btl_sm.c
> rather than mca_btl_sm.c or ompi_btl_sm.c. Right?

Correct. The intent here (for filenames) is that if you --disable-
dlopen, then all the component .o files get slurped into
the .a / .so. And you can't have 2 of the same .o filename in a
single library. Hence, the prefix rule is needed to guarantee
uniqueness of filenames. But the layer name (or mca) is deemed
unnecessary -- we ruled that the <framework>_<component>_ prefix would
be unique enough.

Public symbols get a little more rigorious treatment (*must* have mca,
ompi, orte, or opal -- or MPI_ prefix) because we're a library. The
possibility that some user application has a variable named
"btl_sm_something" is quite possible -- "btl" and "sm" could have
entirely different meanings for them. Also, we can't control the user
app, so we wanted to be as conservative as possible.

That being said, we *can* control the filenames in our libraries. And
by definition, we'll never have a filename clash with a user
application. So we only need to prevent filename collisions within
our own code base. If a developer creates a file named ompi/runtime/
btl_sm_something.c, I think we'd prefer to simply shoot the developer
to solve the problem.

> As you have spoken, so has it been done. And, if someone would
> confirm
> the filename issue above, I'll update accordingly. Thanks for all the
> answers. Patch for 1962 on its way.

Many thanks Eugene!

Jeff Squyres
Cisco Systems