test: these files are not used any more
The functions in components.* are not used by any tests. Removing this old kruft.
Этот коммит содержится в:
родитель
b937db49b4
Коммит
6af4f1896c
@ -9,7 +9,7 @@
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
@ -18,7 +18,6 @@
|
||||
#
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
$(LTDLINCL) \
|
||||
-DBUILDDIR=\"$(OMPI_TOP_BUILDDIR)\" \
|
||||
-DSRCDIR=\"$(OMPI_TOP_SRCDIR)\"
|
||||
|
||||
@ -30,7 +29,5 @@ AM_CPPFLAGS = \
|
||||
check_LIBRARIES = libsupport.a
|
||||
|
||||
libsupport_a_SOURCES = \
|
||||
components.h \
|
||||
components.c \
|
||||
support.c \
|
||||
support.h
|
||||
|
@ -1,191 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "opal_config.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "opal/constants.h"
|
||||
#include "opal/mca/mca.h"
|
||||
#include "opal/libltdl/ltdl.h"
|
||||
|
||||
#include "components.h"
|
||||
|
||||
|
||||
/*
|
||||
* Local functions
|
||||
*/
|
||||
static bool try_dlopen(const char *dir, const char *fw, const char *comp,
|
||||
test_component_handle_t *comp_handle,
|
||||
test_component_sym_t *comp_symbol);
|
||||
static char *dir_concat(const char *a, const char *b);
|
||||
|
||||
|
||||
int test_component_open(const char *framework, const char *component,
|
||||
test_component_handle_t *comp_handle,
|
||||
mca_base_component_t **mca)
|
||||
{
|
||||
test_component_sym_t sym;
|
||||
|
||||
if (NULL == framework || NULL == component || NULL == comp_handle ||
|
||||
NULL == mca) {
|
||||
return OPAL_ERR_BAD_PARAM;
|
||||
}
|
||||
comp_handle->tch_handle = NULL;
|
||||
sym.tcs_variable = NULL;
|
||||
|
||||
/* It's ok to call lt_dlinit() multiple times; it ref counts for
|
||||
lt_dlexit() */
|
||||
|
||||
lt_dlinit();
|
||||
|
||||
/* Try to open */
|
||||
|
||||
if (try_dlopen(".", framework, component, comp_handle, &sym) ||
|
||||
try_dlopen(dir_concat(BUILDDIR, "src/mca"), framework,
|
||||
component, comp_handle, &sym) ||
|
||||
try_dlopen(dir_concat(SRCDIR, "src/mca"), framework,
|
||||
component, comp_handle, &sym)) {
|
||||
|
||||
/* Ok, dlopen'ed it. Now call the component's open
|
||||
function. */
|
||||
|
||||
*mca = (mca_base_component_t*) sym.tcs_variable;
|
||||
if (NULL == (*mca)->mca_open_component ||
|
||||
(NULL != (*mca)->mca_open_component &&
|
||||
OPAL_SUCCESS == (*mca)->mca_open_component())) {
|
||||
return OPAL_SUCCESS;
|
||||
}
|
||||
|
||||
/* Badness occurred, so dlclose the component */
|
||||
|
||||
test_component_close(comp_handle);
|
||||
}
|
||||
|
||||
/* Didn't find it / unable to open it */
|
||||
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
|
||||
int test_component_find_symbol(const char *name,
|
||||
test_component_handle_t *handle,
|
||||
test_component_sym_t *sym)
|
||||
{
|
||||
/* Use a union to avoid pesky compilers that complain [rightfully,
|
||||
unfortunately] about converting (void*) to a function pointer
|
||||
-- need to wait until the ltdl library has a lt_dlsymfunc()
|
||||
function for a real fix... */
|
||||
|
||||
union {
|
||||
void *vvalue;
|
||||
void (*fvalue)(void);
|
||||
} value;
|
||||
|
||||
if (NULL == handle || NULL == sym) {
|
||||
return OPAL_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
value.vvalue = lt_dlsym(handle->tch_handle, name);
|
||||
sym->tcs_function = value.fvalue;
|
||||
return OPAL_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
int test_component_close(test_component_handle_t *handle)
|
||||
{
|
||||
/* Note that lt_dlinit() refcounts, so ld_dlexit() only actually
|
||||
shuts down if we've called it as many times as we've called
|
||||
lt_dlinit() */
|
||||
|
||||
if (NULL != handle && NULL != handle->tch_handle) {
|
||||
lt_dlclose(handle->tch_handle);
|
||||
lt_dlexit();
|
||||
handle->tch_handle = NULL;
|
||||
}
|
||||
|
||||
return OPAL_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static bool try_dlopen(const char *dir, const char *fw, const char *comp,
|
||||
test_component_handle_t *comp_handle,
|
||||
test_component_sym_t *comp_symbol)
|
||||
{
|
||||
char component_name[BUFSIZ];
|
||||
char file_name[BUFSIZ];
|
||||
char dirsep = '/';
|
||||
|
||||
component_name[BUFSIZ - 1] = '\0';
|
||||
snprintf(component_name, BUFSIZ - 1, "mca_%s_%s_component", fw, comp);
|
||||
if ('\0' != component_name[BUFSIZ - 1]) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* First, look for the component symbol statically */
|
||||
|
||||
comp_handle->tch_handle = lt_dlopen(NULL);
|
||||
if (NULL != comp_handle->tch_handle) {
|
||||
comp_symbol->tcs_variable =
|
||||
lt_dlsym(comp_handle->tch_handle, component_name);
|
||||
if (NULL != comp_symbol->tcs_variable) {
|
||||
return true;
|
||||
}
|
||||
lt_dlclose(comp_handle->tch_handle);
|
||||
}
|
||||
|
||||
/* Not in self -- look for a real component */
|
||||
|
||||
file_name[BUFSIZ - 1] = '\0';
|
||||
snprintf(file_name, BUFSIZ - 1, "%s%c%s%c%s%cmca_%s_%s", dir, dirsep,
|
||||
fw, dirsep, comp, dirsep, fw, comp);
|
||||
if ('\0' != file_name[BUFSIZ - 1]) {
|
||||
return false;
|
||||
}
|
||||
comp_handle->tch_handle = lt_dlopenext(file_name);
|
||||
if (NULL != comp_handle->tch_handle) {
|
||||
comp_symbol->tcs_variable =
|
||||
lt_dlsym(comp_handle->tch_handle, component_name);
|
||||
if (NULL != comp_symbol->tcs_variable) {
|
||||
return true;
|
||||
}
|
||||
lt_dlclose(comp_handle->tch_handle);
|
||||
}
|
||||
|
||||
/* Nope, didn't find it */
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static char *dir_concat(const char *a, const char *b)
|
||||
{
|
||||
static char name[BUFSIZ];
|
||||
name[0] = '\0';
|
||||
if (NULL != a) {
|
||||
strcat(name, a);
|
||||
strcat(name, "/");
|
||||
}
|
||||
if (NULL != b) {
|
||||
strcat(name, b);
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
/** @file */
|
||||
|
||||
#ifndef OMPI_SUPPORT_COMPONENTS_H
|
||||
#define OMPI_SUPPORT_COMPONENTS_H
|
||||
|
||||
#include "opal/libltdl/ltdl.h"
|
||||
#include "opal/mca/mca.h"
|
||||
|
||||
BEGIN_C_DECLS
|
||||
|
||||
/**
|
||||
* Generic function pointer, suitable for casting
|
||||
*/
|
||||
typedef void (*test_component_fn_t)(void);
|
||||
|
||||
/**
|
||||
* Type to hold both a variable and a function pointer, especially
|
||||
* for platforms where they are different sizes.
|
||||
*/
|
||||
union test_component_sym_t {
|
||||
void *tcs_variable;
|
||||
test_component_fn_t tcs_function;
|
||||
};
|
||||
/** Convenience typedef */
|
||||
typedef union test_component_sym_t test_component_sym_t;
|
||||
|
||||
/**
|
||||
* Type for masking the real/underlying type of opened components
|
||||
*/
|
||||
struct test_component_handle_t {
|
||||
lt_dlhandle tch_handle;
|
||||
};
|
||||
/**
|
||||
* Convenience typedef
|
||||
*/
|
||||
typedef struct test_component_handle_t test_component_handle_t;
|
||||
|
||||
/**
|
||||
* Open a specific MCA component in the build tree
|
||||
*
|
||||
* void *test_component_open()
|
||||
*/
|
||||
int test_component_open(const char *framework, const char *component,
|
||||
test_component_handle_t *comp_handle,
|
||||
mca_base_component_t **mca);
|
||||
|
||||
/**
|
||||
* Find a symbol in an MCA component
|
||||
*
|
||||
* ompi_test_component_sym_t test_component_find_symbol()
|
||||
*/
|
||||
int test_component_find_symbol(const char *name,
|
||||
test_component_handle_t *handle,
|
||||
test_component_sym_t *sym);
|
||||
|
||||
/**
|
||||
* Close a specific MCA component
|
||||
*
|
||||
* int test_component_close()
|
||||
*/
|
||||
int test_component_close(test_component_handle_t *handle);
|
||||
|
||||
|
||||
END_C_DECLS
|
||||
|
||||
#endif /* OMPI_SUPPORT_COMPONENTS_H */
|
Загрузка…
Ссылка в новой задаче
Block a user