RFC: Rename several OMPI_* names to OPAL_*

WHAT: Rename several #define values that encode the prefix "OMPI_" to
instead encode the prefix "OPAL_" throughout the entire Open MPI source code
tree.  Also, eliminate unnecessary #include lines from source code files
under the ".../ompi/mca/btl" subtree.

WHY: (1) These are general source code improvements that update #define
values to more accurately describe which layer the values belong and remove
unnecessary dependencies within the source code; (2) These changes will help
with the effort to move the BTL code into an independent layer.

WHERE: 1.4 trunk

WHEN: Negotiable -- see below, but probably near split for 1.4
      (No earlier than February 19, 2009)

Timeout: February 19, 2009

====================================

The proposed change involves renaming several #define values that encode the
prefix "OMPI_" to instead encode the prefix "OPAL_" throughout the entire
Open MPI source code tree.  These names are holdovers from when the three
existing layers of Open MPI were developed together prior to being split
apart.  Additionally, the proposed change eliminates a few unnecessary
#include lines in BTL source code files under the .../ompi/mca/btl subtree.

Specific modifications are detailed following this message text.  A script
to carry out these modifications is also attached to this message (gzipped
to pass unmolested through the ORNL e-mail server).

We believe these modifications improve the Open MPI source code by renaming
values such that they correspond to the Open MPI layer to which they most
closely belong, and that this improvement is itself of benefit to Open MPI.
These modifications will also aid our ongoing efforts to extract the BTL
code into a new layer ("ONET") that can be built with just direct dependence
on the OPAL layer.

Although these changes are simple string substitutions, they touch a fair
amount of code in the Open MPI tree.  Three people have tested these changes
at our site on various platforms and have not discovered any problems.
However, we recognize that some members of the community may have
input/feedback regarding testing and we remain open to suggestions related
to testing.

One challenge that has been brought up regarding this RFC is that applying
patches and/or CMRs to the source code tree after the proposed changes are
performed will be more difficult.  To that end, the best opportunity to
apply the modifications proposed in this RFC seems to be in conjunction with
1.4.  (My understanding from the developer conference call this morning is
that there are a few other changes waiting for this switch as well.)  We are
open to suggestions about the best time to apply this RFC to avoid major
disruptions.


Specific changes follow:

* From .../configure.ac.
     * OMPI_NEED_C_BOOL
     * OMPI_HAVE_WEAK_SYMBOLS
     * OMPI_C_HAVE_WEAK_SYMBOLS
     * OMPI_USE_STDBOOL_H
     * OMPI_HAVE_SA_RESTART
     * OMPI_HAVE_VA_COPY
     * OMPI_HAVE_UNDERSCORE_VA_COPY
     * OMPI_PTRDIFF_TYPE
     * (also, ompi_ptrdiff_t)
     * OMPI_ALIGN_WORD_SIZE_INTEGERS
     * OMPI_WANT_LIBLTDL
     * (also, OMPI_ENABLE_DLOPEN_SUPPORT)
     * OMPI_STDC_HEADERS
     * OMPI_HAVE_SYS_TIME_H
     * OMPI_HAVE_LONG_LONG
     * OMPI_HAVE_SYS_SYNCH_H
     * OMPI_SIZEOF_BOOL
     * OMPI_SIZEOF_INT

* From .../config/ompi_check_attributes.m4.
     * OMPI_HAVE_ATTRIBUTE
     * (also, ompi_cv___attribute__)
     * OMPI_HAVE_ATTRIBUTE_ALIGNED
     * (also, ompi_cv___attribute__aligned)
     * OMPI_HAVE_ATTRIBUTE_ALWAYS_INLINE
     * (also, ompi_cv___attribute__always_inline)
     * OMPI_HAVE_ATTRIBUTE_COLD
     * (also, ompi_cv___attribute__cold)
     * OMPI_HAVE_ATTRIBUTE_CONST
     * (also, ompi_cv___attribute__const)
     * OMPI_HAVE_ATTRIBUTE_DEPRECATED
     * (also, ompi_cv___attribute__deprecated)
     * OMPI_HAVE_ATTRIBUTE_FORMAT
     * (also, ompi_cv___attribute__format)
     * OMPI_HAVE_ATTRIBUTE_HOT
     * (also, ompi_cv___attribute__hot)
     * OMPI_HAVE_ATTRIBUTE_MALLOC
     * (also, ompi_cv___attribute__malloc)
     * OMPI_HAVE_ATTRIBUTE_MAY_ALIAS
     * (also, ompi_cv___attribute__may_alias)
     * OMPI_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION
     * (also, ompi_cv___attribute__no_instrument_function)
     * OMPI_HAVE_ATTRIBUTE_NONNULL
     * (also, ompi_cv___attribute__nonnull)
     * OMPI_HAVE_ATTRIBUTE_NORETURN
     * (also, ompi_cv___attribute__noreturn)
     * OMPI_HAVE_ATTRIBUTE_PACKED
     * (also, ompi_cv___attribute__packed)
     * OMPI_HAVE_ATTRIBUTE_PURE
     * (also, ompi_cv___attribute__pure)
     * OMPI_HAVE_ATTRIBUTE_SENTINEL
     * (also, ompi_cv___attribute__sentinel)
     * OMPI_HAVE_ATTRIBUTE_UNUSED
     * (also, ompi_cv___attribute__unused)
     * OMPI_HAVE_ATTRIBUTE_VISIBILITY
     * (also, ompi_cv___attribute__visibility)
     * OMPI_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT
     * (also, ompi_cv___attribute__warn_unused_result)
     * OMPI_HAVE_ATTRIBUTE_WEAK_ALIAS
     * (also, ompi_cv___attribute__weak_alias)

* From .../config/ompi_check_ident.m4.
     * OMPI_$1_USE_PRAGMA_IDENT
     * (also, ompi_pragma_ident_happy)
     * OMPI_$1_USE_IDENT
     * (also, ompi_ident_happy)
     * OMPI_$1_USE_PRAGMA_COMMENT
     * (also, ompi_pragma_comment_happy)
     * OMPI_$1_USE_CONST_CHAR_IDENT
     * (also, ompi_static_const_char_happy)

* From .../config/ompi_check_pthreads_pids.m4.
     * OMPI_THREADS_HAVE_DIFFERENT_PIDS

* From .../config/ompi_check_visibility.m4.
     * OMPI_C_HAVE_VISIBILITY

* From .../config/ompi_config_asm.m4.
     * OMPI_ASM_TEXT
     * (also, ompi_cv_asm_text)
     * OMPI_ASM_GLOBAL
     * (also, ompi_cv_asm_global)
     * OMPI_ASM_LSYM
     * (also, ompi_cv_asm_lsym)
     * OMPI_ASM_GSYM
     * (also, ompi_cv_asm_gsym)
     * OMPI_ASM_LABEL_SUFFIX
     * (also, ompi_cv_asm_latel_suffix)
     * OMPI_ASM_ALIGN_LOG
     * OMPI_ASM_TYPE
     * (also, ompi_cv_asm_type)
     * OMPI_ASM_SIZE
     * (also, ompi_asm_size)
     * OMPI_POWERPC_R_REGISTERS
     * (also, ompi_cv_asm_powerpc_r_reg)
     * OMPI_C_GCC_INLINE_ASSEMBLY
     * OMPI_C_DEC_INLINE_ASSEMBLY
     * OMPI_C_XLC_INLINE_ASSEMBLY
     * OMPI_WANT_SMP_LOCKS
     * OMPI_ASM_SUPPORT_64BIT
     * OMPI_ASSEMBLY_FORMAT
     * OMPI_ASSEMBLY_ARCH
     * OMPI_HAVE_ASM_FILE

* From .../config/ompi_config_threads.m4.
     * OMPI_HAVE_POSIX_THREADS
     * OMPI_HAVE_SOLARIS_THREADS
     * OMPI_THREADS_HAVE_DIFFERENT_PIDS
     * OMPI_ENABLE_MPI_THREADS
     * OMPI_ENABLE_PROGRESS_THREADS

* From .../config/ompi_functions.m4.
     * OMPI_ARCH

* From .../config/ompi_setup_cc.m4.
     * OMPI_C_HAVE_BUILTIN_EXPECT
     * OMPI_C_HAVE_BUILTIN_PREFETCH
     * OMPI_CC

* From .../config/ompi_configure_options.m4.
     * OMPI_ENABLE_MEM_DEBUG
     * OMPI_ENABLE_MEM_PROFILE
     * OMPI_ENABLE_DEBUG
     * OMPI_WANT_PRETTY_PRINT_STACKTRACE
     * OMPI_ENABLE_PTY_SUPPORT
     * OMPI_ENABLE_HETEROGENEOUS_SUPPORT
     * OMPI_WANT_HOME_CONFIG_FILES

* From .../opal/include/opal_config_bottom.h.
     * OMPI_HAVE_THREADS
     * OMPI_HAVE_THREAD_SUPPORT
     * OMPI_ALIGNMENT_CHAR
     * OMPI_ALIGNMENT_SHORT
     * OMPI_ALIGNMENT_INT
     * OMPI_ALIGNMENT_LONG
     * OMPI_PATH_MAX
     * OMPI_DISABLE_ENABLE_MEM_DEBUG
     * OMPI_DEBUG_ZERO
     * OMPI_HAVE_BROKEN_QSORT

* Due to changing the values set in the above steps, the .m4 configure macro
files are now named inappropriately.  Therefore, update the following
filenames and change the configure scripts to point to the correct new
names.
     * .../config/ompi_check_attributes.m4 to
       .../config/opal_check_attributes.m4
     * .../config/ompi_check_ident.m4 to
       .../config/opal_check_ident.m4
     * .../config/ompi_check_pthread_pids.m4 to
       .../config/opal_check_pthread_pids.m4
     * .../config/ompi_check_visibility.m4 to
       .../config/opal_check_visibility.m4
     * .../config/ompi_config_asm.m4 to
       .../config/opal_config_asm.m4
     * .../config/ompi_config_threads.m4 to
       .../config/opal_config_threads.m4
     * .../config/ompi_functions.m4 to
       .../config/opal_functions.m4
     * .../config/ompi_setup_cc.m4 to
       .../config/opal_setup_cc.m4
     * .../config/ompi_configure_options.m4 to
       .../config/opal_configure_options.m4

* Remove unnecessary #include lines from source code files under the
.../ompi/mca/btl subtree that are not needed.
     * #include "ompi/mca/pml/oml.h"

Attachment: koenig-fix1.sh.gz
Description: Binary data

Reply via email to