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

Reply via email to