1
1

Modify destructor function configury

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
Этот коммит содержится в:
Nathan Hjelm 2015-04-20 09:51:06 -06:00
родитель 38589c46c0
Коммит 662460b06b
5 изменённых файлов: 20 добавлений и 15 удалений

Просмотреть файл

@ -608,5 +608,4 @@ AC_DEFUN([OPAL_CHECK_ATTRIBUTES], [
[Whether your compiler has __attribute__ weak alias or not])
AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_DESTRUCTOR, [$opal_cv___attribute__destructor],
[Whether your compiler has __attribute__ destructor or not])
AM_CONDITIONAL(HAVE_ATTRIBUTE_DESTRUCTOR, [test x$opal_cv___attribute__destructor = x1])
])

Просмотреть файл

@ -807,13 +807,24 @@ AC_MSG_CHECKING([the linker for support for the -fini option])
LDFLAGS_save=$LDFLAGS
LDFLAGS="$LDFLAGS_save -Wl,-fini -Wl,finalize"
AC_TRY_LINK([void finalize (void) {}], [], [AC_MSG_RESULT([yes])
opal_ld_fini=1], [AC_MSG_RESULT([no])
opal_ld_fini=0])
AM_CONDITIONAL(HAVE_LD_FINI, [test x$opal_ld_fini = x1])
AC_DEFINE_UNQUOTED(OPAL_HAVE_LD_FINI, [$opal_ld_fini],
[Whether linker has support for the -fini option])
opal_ld_have_fini=1], [AC_MSG_RESULT([no])
opal_ld_have_fini=0])
LDFLAGS=$LDFLAGS_save
opal_destructor_use_fini=0
opal_no_destructor=0
if test x$opal_cv___attribute__destructor = x0 ; then
if test x$opal_ld_have_fini = x1 ; then
opal_destructor_use_fini=1
else
opal_no_destructor=1;
fi
fi
AC_DEFINE_UNQUOTED(OPAL_NO_LIB_DESTRUCTOR, [$opal_no_destructor],
[Whether libraries can be configured with destructor functions])
AM_CONDITIONAL(OPAL_DESTRUCTOR_USE_FINI, [test x$opal_destructor_use_fini = x1])
##################################
# Libraries
##################################

Просмотреть файл

@ -53,17 +53,12 @@ lib@OPAL_LIB_PREFIX@open_pal_la_LIBADD = \
util/libopalutil.la \
$(MCA_opal_FRAMEWORK_LIBS)
lib@OPAL_LIB_PREFIX@open_pal_la_DEPENDENCIES = $(lib@OPAL_LIB_PREFIX@open_pal_la_LIBADD)
if HAVE_ATTRIBUTE_DESTRUCTOR
lib@OPAL_LIB_PREFIX@open_pal_la_LDFLAGS = -version-info $(libopen_pal_so_version)
else
if HAVE_LD_FINI
if OPAL_DESTRUCTOR_USE_FINI
lib@OPAL_LIB_PREFIX@open_pal_la_LDFLAGS = -version-info $(libopen_pal_so_version) -Wl,-fini,opal_cleanup
lib@OPAL_LIB_PREFIX@open_pal_la_LDFLAGS += -Wl,-fini -Wl,opal_cleanup
endif
endif
# included subdirectory Makefile.am's and appended-to variables

Просмотреть файл

@ -113,7 +113,7 @@ opal_finalize_util(void)
opal_datatype_finalize();
#if !(OPAL_HAVE_LD_FINI || OPAL_HAVE_ATTRIBUTE_DESTRUCTOR)
#if OPAL_NO_LIB_DESTRUCTOR
opal_cleanup ();
#endif

Просмотреть файл

@ -267,7 +267,7 @@ opal_init_util(int* pargc, char*** pargv)
return OPAL_SUCCESS;
}
#if !(OPAL_HAVE_LD_FINI || OPAL_HAVE_ATTRIBUTE_DESTRUCTOR)
#if OPAL_NO_LIB_DESTRUCTOR
if (opal_init_called) {
/* can't use show_help here */
fprintf (stderr, "opal_init_util: attempted to initialize after finalize without compiler "