oshmem: move finalization from the liboshmem destructor into oshmem_onexit()
so we can use the legacy start_pes even when Open MPI is compiled with --enable-static or --disable-visibility
Этот коммит содержится в:
родитель
83399adb3f
Коммит
92dd719df1
@ -2,7 +2,9 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2013 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2013 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* Copyright (c) 2016 Research Organization for Information Science
|
||||||
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -52,9 +54,6 @@
|
|||||||
# ifndef OSHMEM_MODULE_DECLSPEC
|
# ifndef OSHMEM_MODULE_DECLSPEC
|
||||||
# define OSHMEM_MODULE_DECLSPEC __opal_attribute_visibility__("default")
|
# define OSHMEM_MODULE_DECLSPEC __opal_attribute_visibility__("default")
|
||||||
# endif
|
# endif
|
||||||
# ifndef OSHMEM_DESTRUCTOR
|
|
||||||
# define OSHMEM_DESTRUCTOR __opal_attribute_destructor__
|
|
||||||
# endif
|
|
||||||
# else
|
# else
|
||||||
# ifndef OSHMEM_DECLSPEC
|
# ifndef OSHMEM_DECLSPEC
|
||||||
# define OSHMEM_DECLSPEC
|
# define OSHMEM_DECLSPEC
|
||||||
@ -62,9 +61,6 @@
|
|||||||
# ifndef OSHMEM_MODULE_DECLSPEC
|
# ifndef OSHMEM_MODULE_DECLSPEC
|
||||||
# define OSHMEM_MODULE_DECLSPEC
|
# define OSHMEM_MODULE_DECLSPEC
|
||||||
# endif
|
# endif
|
||||||
# ifndef OSHMEM_DESTRUCTOR
|
|
||||||
# define OSHMEM_DESTRUCTOR
|
|
||||||
# endif
|
|
||||||
# endif
|
# endif
|
||||||
#endif /* defined(__WINDOWS__) */
|
#endif /* defined(__WINDOWS__) */
|
||||||
|
|
||||||
|
@ -34,14 +34,6 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OSHMEM_DESTRUCTOR
|
|
||||||
# if defined(OPAL_C_HAVE_VISIBILITY) && (OPAL_C_HAVE_VISIBILITY == 1)
|
|
||||||
# define OSHMEM_DESTRUCTOR __attribute__((__destructor__))
|
|
||||||
# else
|
|
||||||
# define OSHMEM_DESTRUCTOR
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <pshmemx.h>
|
#include <pshmemx.h>
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
@ -61,7 +53,7 @@ OSHMEM_DECLSPEC void pshmem_global_exit(int status);
|
|||||||
/*
|
/*
|
||||||
* Finalization routines
|
* Finalization routines
|
||||||
*/
|
*/
|
||||||
OSHMEM_DECLSPEC void pshmem_finalize(void) OSHMEM_DESTRUCTOR;
|
OSHMEM_DECLSPEC void pshmem_finalize(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Query routines
|
* Query routines
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
* Copyright (c) 2014-2016 Mellanox Technologies, Inc.
|
* Copyright (c) 2014-2016 Mellanox Technologies, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2014 Intel, Inc. All rights reserved
|
* Copyright (c) 2014 Intel, Inc. All rights reserved
|
||||||
|
* Copyright (c) 2016 Research Organization for Information Science
|
||||||
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -40,14 +42,6 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OSHMEM_DESTRUCTOR
|
|
||||||
# if defined(OPAL_C_HAVE_VISIBILITY) && (OPAL_C_HAVE_VISIBILITY == 1)
|
|
||||||
# define OSHMEM_DESTRUCTOR __attribute__((__destructor__))
|
|
||||||
# else
|
|
||||||
# define OSHMEM_DESTRUCTOR
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <shmem-compat.h>
|
#include <shmem-compat.h>
|
||||||
#include <shmemx.h>
|
#include <shmemx.h>
|
||||||
|
|
||||||
@ -118,7 +112,7 @@ enum shmem_wait_ops {
|
|||||||
* Initialization routines
|
* Initialization routines
|
||||||
*/
|
*/
|
||||||
OSHMEM_DECLSPEC void shmem_init(void);
|
OSHMEM_DECLSPEC void shmem_init(void);
|
||||||
OSHMEM_DECLSPEC void shmem_finalize(void) OSHMEM_DESTRUCTOR;
|
OSHMEM_DECLSPEC void shmem_finalize(void);
|
||||||
OSHMEM_DECLSPEC void shmem_global_exit(int status);
|
OSHMEM_DECLSPEC void shmem_global_exit(int status);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2015 Mellanox Technologies, Inc.
|
* Copyright (c) 2013-2015 Mellanox Technologies, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2016 Research Organization for Information Science
|
||||||
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -49,6 +51,7 @@ void start_pes(int npes)
|
|||||||
static void shmem_onexit(int exitcode, void *arg)
|
static void shmem_onexit(int exitcode, void *arg)
|
||||||
{
|
{
|
||||||
oshmem_shmem_globalexit_status = exitcode;
|
oshmem_shmem_globalexit_status = exitcode;
|
||||||
|
shmem_finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void _shmem_init(void)
|
static inline void _shmem_init(void)
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user