Puzzling. We survived so far without such a requirement. In the BTLs where we needed a 64 bits entity corresponding to the ompi_process_name_t we took advantage of the ompi_rte_hash_name function. This function is supposed to convert from an ompi_process_name_t to a uint64_t (in fact an opal_identifier_t) which can be then used to handle hash tables.
George. On Apr 30, 2014, at 18:12 , svn-commit-mai...@open-mpi.org wrote: > Author: jsquyres (Jeff Squyres) > Date: 2014-04-30 18:12:54 EDT (Wed, 30 Apr 2014) > New Revision: 31577 > URL: https://svn.open-mpi.org/trac/ompi/changeset/31577 > > Log: > rte_base_frame.c: add sanity check to ensure proper sizes > > There's a requirement in several places (e.g., opal dstore) that > sizeof(ompi_process_name_t) -- which comes from the compile-time > selected ompi/mca/rte component -- is equal to sizeof(uint64_t). If > it's not, Bad Things will happen. > > So put an assert here to catch that case. > > Text files modified: > trunk/ompi/mca/rte/base/rte_base_frame.c | 10 +++++++++- > > 1 files changed, 9 insertions(+), 1 deletions(-) > > Modified: trunk/ompi/mca/rte/base/rte_base_frame.c > ============================================================================== > --- trunk/ompi/mca/rte/base/rte_base_frame.c Wed Apr 30 18:10:30 2014 > (r31576) > +++ trunk/ompi/mca/rte/base/rte_base_frame.c 2014-04-30 18:12:54 EDT (Wed, > 30 Apr 2014) (r31577) > @@ -1,6 +1,7 @@ > /* > * Copyright (c) 2012-2013 Los Alamos National Security, LLC. > * All rights reserved. > + * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. > * $COPYRIGHT$ > * > * Additional copyrights may follow > @@ -12,6 +13,7 @@ > #include "ompi_config.h" > #include "ompi/constants.h" > > +#include "opal_stdint.h" > #include "opal/util/output.h" > #include "opal/mca/mca.h" > #include "opal/mca/base/base.h" > @@ -36,7 +38,13 @@ > static int ompi_rte_base_open(mca_base_open_flag_t flags) > { > /* Open up all available components */ > - return mca_base_framework_components_open(&ompi_rte_base_framework, > flags); > + int ret = mca_base_framework_components_open(&ompi_rte_base_framework, > flags); > + > + /* Sanity check. Many things will break if this is not true > + (e.g., opal dstore needs this to be true). */ > + assert(sizeof(ompi_process_name_t) == sizeof(uint64_t)); > + > + return ret; > } > > MCA_BASE_FRAMEWORK_DECLARE(ompi, rte, "OMPI Run-Time Environment Interface", > NULL, > _______________________________________________ > svn mailing list > s...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/svn