1
1

Picky, picky, picky...the a-retentive amongst us wants the default value to show in ompi_info! Of all the nerve...

:-)

Okay, cleanup the prior commit so that the default component search path shows in ompi_info, and remains available in component_find.

This commit was SVN r22278.
Этот коммит содержится в:
Ralph Castain 2009-12-08 17:32:22 +00:00
родитель 76222eb869
Коммит 70e385bcab
4 изменённых файлов: 37 добавлений и 23 удалений

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

@ -60,6 +60,8 @@ OPAL_DECLSPEC OBJ_CLASS_DECLARATION(mca_base_component_priority_list_item_t);
* Public variables
*/
OPAL_DECLSPEC extern int mca_base_param_component_path;
OPAL_DECLSPEC extern char *mca_base_system_default_path;
OPAL_DECLSPEC extern char *mca_base_user_default_path;
/*
* Public functions

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

@ -33,6 +33,14 @@ int mca_base_close(void)
extern bool mca_base_opened;
if (mca_base_opened) {
/* release the default paths */
if (NULL != mca_base_system_default_path) {
free(mca_base_system_default_path);
}
if (NULL != mca_base_user_default_path) {
free(mca_base_user_default_path);
}
/* Close down the component repository */
mca_base_component_repository_finalize();

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

@ -250,20 +250,6 @@ static void find_dyn_components(const char *path, const char *type_name,
component_file_item_t *file;
opal_list_item_t *cur;
char prefix[32 + MCA_BASE_MAX_TYPE_NAME_LEN], *basename;
char *system_default;
char *user_default=NULL;
/* copy the default location definitions */
#if OPAL_WANT_HOME_CONFIG_FILES
system_default = strdup(opal_install_dirs.pkglibdir);
asprintf(&user_default, "%s"OPAL_PATH_SEP".openmpi"OPAL_PATH_SEP"components", opal_home_directory());
#else
# if defined(__WINDOWS__) && defined(_DEBUG)
asprintf(&system_default, "%s/debug", opal_install_dirs.pkglibdir);
# else
asprintf(&system_default, "%s", opal_install_dirs.pkglibdir);
# endif
#endif
/* If path is NULL, iterate over the set of directories specified by
the MCA param mca_base_component_path. If path is not NULL, then
@ -295,13 +281,15 @@ static void find_dyn_components(const char *path, const char *type_name,
}
if ((0 == strcmp(dir, "USER_DEFAULT") ||
0 == strcmp(dir, "USR_DEFAULT"))
&& NULL != user_default) {
if (0 != lt_dlforeachfile(user_default, save_filename, NULL)) {
&& NULL != mca_base_user_default_path) {
if (0 != lt_dlforeachfile(mca_base_user_default_path,
save_filename, NULL)) {
break;
}
} else if (0 == strcmp(dir, "SYS_DEFAULT") ||
0 == strcmp(dir, "SYSTEM_DEFAULT")) {
if (0 != lt_dlforeachfile(system_default, save_filename, NULL)) {
if (0 != lt_dlforeachfile(mca_base_system_default_path,
save_filename, NULL)) {
break;
}
} else {
@ -313,10 +301,6 @@ static void find_dyn_components(const char *path, const char *type_name,
} while (NULL != end);
}
}
free(system_default);
if (NULL != user_default) {
free(user_default);
}
/* Look through the list of found files and find those that match
the desired framework name */

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

@ -41,6 +41,8 @@
*/
int mca_base_param_component_path = -1;
bool mca_base_opened = false;
char *mca_base_system_default_path=NULL;
char *mca_base_user_default_path=NULL;
/*
* Private functions
@ -65,11 +67,29 @@ int mca_base_open(void)
return OPAL_SUCCESS;
}
/* the system and user default paths will be defined in component_find */
/* define the system and user default paths */
#if OPAL_WANT_HOME_CONFIG_FILES
mca_base_system_default_path = strdup(opal_install_dirs.pkglibdir);
asprintf(&mca_base_user_default_path, "%s"OPAL_PATH_SEP".openmpi"OPAL_PATH_SEP"components", opal_home_directory());
#else
# if defined(__WINDOWS__) && defined(_DEBUG)
asprintf(&mca_base_system_default_path, "%s/debug", opal_install_dirs.pkglibdir);
# else
asprintf(&mca_base_system_default_path, "%s", opal_install_dirs.pkglibdir);
# endif
#endif
/* see if the user wants to override the defaults */
if (NULL == mca_base_user_default_path) {
value = strdup(mca_base_system_default_path);
} else {
asprintf(&value, "%s%c%s", mca_base_system_default_path,
OPAL_ENV_SEP, mca_base_user_default_path);
}
mca_base_param_component_path =
mca_base_param_reg_string_name("mca", "component_path",
"Path where to look for Open MPI and ORTE components",
false, false, "SYSTEM_DEFAULT:USER_DEFAULT", NULL);
false, false, value, NULL);
free(value);
param_index = mca_base_param_reg_string_name("mca", "verbose",
"Top-level verbosity parameter",