Revert remaining svn kruft from r23764
This commit was SVN r23786. The following SVN revision numbers were found above: r23764 --> open-mpi/ompi@40a2bfa238
Этот коммит содержится в:
родитель
9512131b6e
Коммит
3631e4e936
@ -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) 2006-2010 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -56,6 +56,7 @@
|
||||
#endif
|
||||
#include "opal/runtime/opal.h"
|
||||
#include "opal/dss/dss.h"
|
||||
#include "opal/mca/if/base/base.h"
|
||||
|
||||
#include "ompi/mca/allocator/base/base.h"
|
||||
#include "ompi/mca/coll/base/base.h"
|
||||
@ -76,7 +77,6 @@
|
||||
#include "ompi/mca/pubsub/base/base.h"
|
||||
#include "ompi/mca/dpm/base/base.h"
|
||||
#include "ompi/mca/op/base/base.h"
|
||||
#include "ompi/mca/vprotocol/base/base.h"
|
||||
|
||||
#if OPAL_ENABLE_FT_CR == 1
|
||||
#include "ompi/mca/crcp/crcp.h"
|
||||
@ -177,7 +177,6 @@ void ompi_info_open_components(void)
|
||||
char **env_save=NULL;
|
||||
bool need_close_components = false;
|
||||
ompi_info_component_map_t *map;
|
||||
char *include_list;
|
||||
|
||||
if (opened_components) {
|
||||
return;
|
||||
@ -347,7 +346,15 @@ void ompi_info_open_components(void)
|
||||
map->components = &opal_compress_base_components_available;
|
||||
opal_pointer_array_add(&component_map, map);
|
||||
#endif
|
||||
|
||||
|
||||
if (OPAL_SUCCESS != opal_if_base_open()) {
|
||||
goto error;
|
||||
}
|
||||
map = OBJ_NEW(ompi_info_component_map_t);
|
||||
map->type = strdup("if");
|
||||
map->components = &opal_if_components;
|
||||
opal_pointer_array_add(&component_map, map);
|
||||
|
||||
/* OPAL's installdirs base open has already been called as part of
|
||||
* opal_init_util() back in main().
|
||||
*/
|
||||
@ -570,21 +577,6 @@ void ompi_info_open_components(void)
|
||||
map->components = &mca_pml_base_components_available;
|
||||
opal_pointer_array_add(&component_map, map);
|
||||
|
||||
/* According to vprotocol_base.c, the first char cannot be 0 or
|
||||
the function will do nothing. Weird. The value must also be
|
||||
malloc'ed, because mca_vprotocol_close() will free() it. */
|
||||
include_list = strdup("bogus");
|
||||
if (NULL == include_list) {
|
||||
goto error;
|
||||
}
|
||||
if (OMPI_SUCCESS != mca_vprotocol_base_open(include_list)) {
|
||||
goto error;
|
||||
}
|
||||
map = OBJ_NEW(ompi_info_component_map_t);
|
||||
map->type = strdup("vprotocol");
|
||||
map->components = &mca_vprotocol_base_components_available;
|
||||
opal_pointer_array_add(&component_map, map);
|
||||
|
||||
/* No need to call the bml_base_open() because the ob1 pml calls it.
|
||||
* mca_bml_base_open();
|
||||
*/
|
||||
|
@ -203,6 +203,8 @@ int main(int argc, char *argv[])
|
||||
opal_pointer_array_add(&mca_types, "crs");
|
||||
opal_pointer_array_add(&mca_types, "compress");
|
||||
#endif
|
||||
opal_pointer_array_add(&mca_types, "if");
|
||||
|
||||
opal_pointer_array_add(&mca_types, "dpm");
|
||||
opal_pointer_array_add(&mca_types, "pubsub");
|
||||
opal_pointer_array_add(&mca_types, "allocator");
|
||||
@ -218,7 +220,6 @@ int main(int argc, char *argv[])
|
||||
opal_pointer_array_add(&mca_types, "osc");
|
||||
opal_pointer_array_add(&mca_types, "op");
|
||||
opal_pointer_array_add(&mca_types, "common");
|
||||
opal_pointer_array_add(&mca_types, "vprotocol");
|
||||
#if OPAL_ENABLE_FT_CR == 1
|
||||
opal_pointer_array_add(&mca_types, "crcp");
|
||||
#endif
|
||||
|
@ -834,7 +834,6 @@ void ompi_info_do_config(bool want_all)
|
||||
ompi_info_out("Symbol vis. support", "options:visibility", symbol_visibility);
|
||||
|
||||
ompi_info_out("MPI extensions", "options:mpi_ext", OMPI_MPIEXT_COMPONENTS);
|
||||
ompi_info_out("MPI contribs", "options:mpi_contrib", OMPI_MPI_CONTRIBS);
|
||||
|
||||
ompi_info_out("FT Checkpoint support", "options:ft_support", ft_support);
|
||||
free(ft_support);
|
||||
|
@ -50,7 +50,6 @@
|
||||
#include "opal/util/opal_environ.h"
|
||||
#include "opal/util/output.h"
|
||||
#include "opal/util/malloc.h"
|
||||
#include "opal/util/if.h"
|
||||
#include "opal/util/keyval_parse.h"
|
||||
#include "opal/util/opal_environ.h"
|
||||
#include "opal/util/argv.h"
|
||||
@ -61,6 +60,7 @@
|
||||
#include "opal/runtime/opal.h"
|
||||
#include "opal/constants.h"
|
||||
|
||||
#include "opal/mca/if/base/base.h"
|
||||
#include "opal/mca/memcpy/base/base.h"
|
||||
#include "opal/mca/memory/base/base.h"
|
||||
#include "opal/mca/timer/base/base.h"
|
||||
@ -773,7 +773,7 @@ int opal_cr_coord(int state)
|
||||
/*
|
||||
* Flush if() functionality, since it caches system specific info.
|
||||
*/
|
||||
opal_iffinalize();
|
||||
opal_if_base_close();
|
||||
/* Since opal_ifinit() is not exposed, the necessary
|
||||
* functions will call it when needed. Just make sure we
|
||||
* finalized this code so we don't get old socket addrs.
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "opal/util/trace.h"
|
||||
#include "opal/util/output.h"
|
||||
#include "opal/util/malloc.h"
|
||||
#include "opal/util/if.h"
|
||||
#include "opal/util/net.h"
|
||||
#include "opal/util/keyval_parse.h"
|
||||
#include "opal/util/show_help.h"
|
||||
@ -34,6 +33,7 @@
|
||||
#include "opal/mca/base/base.h"
|
||||
#include "opal/runtime/opal.h"
|
||||
#include "opal/constants.h"
|
||||
#include "opal/mca/if/base/base.h"
|
||||
#include "opal/mca/installdirs/base/base.h"
|
||||
#include "opal/mca/memcpy/base/base.h"
|
||||
#include "opal/mca/memory/base/base.h"
|
||||
@ -66,9 +66,8 @@ opal_finalize_util(void)
|
||||
/* Clear out all the registered MCA params */
|
||||
mca_base_param_finalize();
|
||||
|
||||
/* close interfaces code. This is lazy opened, but protected from
|
||||
close when not opened internally */
|
||||
opal_iffinalize();
|
||||
/* close interfaces code. */
|
||||
opal_if_base_close();
|
||||
|
||||
opal_net_finalize();
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
* Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2007 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -75,6 +76,7 @@ struct options_data_t {
|
||||
char *module_option;
|
||||
char **preproc_flags;
|
||||
char **comp_flags;
|
||||
char **comp_flags_prefix;
|
||||
char **link_flags;
|
||||
char **libs;
|
||||
char *req_file;
|
||||
@ -116,6 +118,8 @@ options_data_init(struct options_data_t *data)
|
||||
data->preproc_flags[0] = NULL;
|
||||
data->comp_flags = (char **) malloc(sizeof(char*));
|
||||
data->comp_flags[0] = NULL;
|
||||
data->comp_flags_prefix = (char **) malloc(sizeof(char*));
|
||||
data->comp_flags_prefix[0] = NULL;
|
||||
data->link_flags = (char **) malloc(sizeof(char*));
|
||||
data->link_flags[0] = NULL;
|
||||
data->libs = (char **) malloc(sizeof(char*));
|
||||
@ -142,6 +146,7 @@ options_data_free(struct options_data_t *data)
|
||||
if (NULL != data->module_option) free(data->module_option);
|
||||
opal_argv_free(data->preproc_flags);
|
||||
opal_argv_free(data->comp_flags);
|
||||
opal_argv_free(data->comp_flags_prefix);
|
||||
opal_argv_free(data->link_flags);
|
||||
opal_argv_free(data->libs);
|
||||
if (NULL != data->req_file) free(data->req_file);
|
||||
@ -298,6 +303,13 @@ data_callback(const char *key, const char *value)
|
||||
values);
|
||||
expand_flags(options_data[parse_options_idx].comp_flags);
|
||||
opal_argv_free(values);
|
||||
} else if (0 == strcmp(key, "compiler_flags_prefix")) {
|
||||
char **values = opal_argv_split(value, ' ');
|
||||
opal_argv_insert(&options_data[parse_options_idx].comp_flags_prefix,
|
||||
opal_argv_count(options_data[parse_options_idx].comp_flags_prefix),
|
||||
values);
|
||||
expand_flags(options_data[parse_options_idx].comp_flags_prefix);
|
||||
opal_argv_free(values);
|
||||
} else if (0 == strcmp(key, "linker_flags")) {
|
||||
char **values = opal_argv_split(value, ' ');
|
||||
opal_argv_insert(&options_data[parse_options_idx].link_flags,
|
||||
@ -712,6 +724,12 @@ main(int argc, char *argv[])
|
||||
exec_argc = 0;
|
||||
}
|
||||
|
||||
if (flags & COMP_WANT_COMPILE) {
|
||||
opal_argv_insert(&exec_argv, exec_argc,
|
||||
options_data[user_data_idx].comp_flags_prefix);
|
||||
exec_argc = opal_argv_count(exec_argv);
|
||||
}
|
||||
|
||||
/* Per https://svn.open-mpi.org/trac/ompi/ticket/2201, add all the
|
||||
user arguments before anything else. */
|
||||
opal_argv_insert(&exec_argv, exec_argc, user_argv);
|
||||
|
@ -14,6 +14,7 @@ compiler_flags_env=CXXFLAGS
|
||||
compiler=@CXX@
|
||||
extra_includes=@OPAL_WRAPPER_EXTRA_INCLUDES@
|
||||
preprocessor_flags=@OPAL_WRAPPER_EXTRA_CPPFLAGS@
|
||||
compiler_flags_prefix=@OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@
|
||||
compiler_flags=@OPAL_WRAPPER_EXTRA_CXXFLAGS@
|
||||
linker_flags=@OPAL_WRAPPER_EXTRA_LDFLAGS@
|
||||
libs=-lopen-pal @OPAL_WRAPPER_EXTRA_LIBS@
|
||||
|
@ -14,6 +14,7 @@ compiler_flags_env=CFLAGS
|
||||
compiler=@CC@
|
||||
extra_includes=@OPAL_WRAPPER_EXTRA_INCLUDES@
|
||||
preprocessor_flags=@OPAL_WRAPPER_EXTRA_CPPFLAGS@
|
||||
compiler_flags_prefix=@OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@
|
||||
compiler_flags=@OPAL_WRAPPER_EXTRA_CFLAGS@
|
||||
linker_flags=@OPAL_WRAPPER_EXTRA_LDFLAGS@
|
||||
libs=-lopen-pal @OPAL_WRAPPER_EXTRA_LIBS@
|
||||
|
911
opal/util/if.c
911
opal/util/if.c
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
@ -170,15 +170,6 @@ OPAL_DECLSPEC int opal_ifindextoflags(int if_index, uint32_t*);
|
||||
*/
|
||||
OPAL_DECLSPEC bool opal_ifislocal(const char *hostname);
|
||||
|
||||
/**
|
||||
* Finalize the functions to release malloc'd data
|
||||
*
|
||||
* @param none
|
||||
* @return OPAL_SUCCESS if no problems encountered
|
||||
* @return OPAL_ERROR if data could not be released
|
||||
*/
|
||||
OPAL_DECLSPEC int opal_iffinalize(void);
|
||||
|
||||
/**
|
||||
* Convert a dot-delimited network tuple to an IP address
|
||||
*
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "orte/mca/sensor/sensor.h"
|
||||
#include "orte/mca/routed/routed.h"
|
||||
#include "orte/mca/debugger/base/base.h"
|
||||
#include "orte/mca/notifier/notifier.h"
|
||||
|
||||
#include "orte/util/error_strings.h"
|
||||
#include "orte/util/name_fns.h"
|
||||
@ -990,7 +991,8 @@ static void check_job_complete(orte_job_t *jdata)
|
||||
orte_std_cntr_t index;
|
||||
bool one_still_alive;
|
||||
orte_vpid_t non_zero=0, lowest=0;
|
||||
|
||||
char *msg;
|
||||
|
||||
#if 0
|
||||
/* Check if FileM is active. If so then keep processing. */
|
||||
OPAL_ACQUIRE_THREAD(&orte_filem_base_lock, &orte_filem_base_cond, &orte_filem_base_is_active);
|
||||
@ -1225,7 +1227,7 @@ static void check_job_complete(orte_job_t *jdata)
|
||||
* This can happen if a ctrl-c hits in the "wrong" place
|
||||
* while launching
|
||||
*/
|
||||
CHECK_DAEMONS:
|
||||
CHECK_DAEMONS:
|
||||
if (jdata == NULL || jdata->jobid == ORTE_PROC_MY_NAME->jobid) {
|
||||
if (0 == orte_routed.num_routes()) {
|
||||
/* orteds are done! */
|
||||
@ -1301,6 +1303,9 @@ CHECK_DAEMONS:
|
||||
* then go ahead and release it. We cannot release it if it
|
||||
* abnormally terminated as mpirun needs the info so it can
|
||||
* report appropriately to the user
|
||||
*
|
||||
* NOTE: do not release the primary job (j=1) so we
|
||||
* can pretty-print completion message
|
||||
*/
|
||||
if (NULL != jdata && job->jobid == jdata->jobid &&
|
||||
(jdata->state == ORTE_JOB_STATE_TERMINATED ||
|
||||
@ -1309,8 +1314,10 @@ CHECK_DAEMONS:
|
||||
* pointer array internal accounting
|
||||
* is maintained!
|
||||
*/
|
||||
opal_pointer_array_set_item(orte_job_data, j, NULL); /* ensure the array has a NULL */
|
||||
OBJ_RELEASE(jdata);
|
||||
if (1 < j) {
|
||||
opal_pointer_array_set_item(orte_job_data, j, NULL); /* ensure the array has a NULL */
|
||||
OBJ_RELEASE(jdata);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
/* if the job is flagged to not be monitored, skip it */
|
||||
@ -1356,6 +1363,25 @@ CHECK_DAEMONS:
|
||||
* wasn't already set by an error condition
|
||||
*/
|
||||
ORTE_UPDATE_EXIT_STATUS(0);
|
||||
/* provide a notifier message if that framework is active - ignored otherwise */
|
||||
if (NULL != (job = (orte_job_t*)opal_pointer_array_get_item(orte_job_data, 1))) {
|
||||
if (NULL == job->name) {
|
||||
job->name = strdup(orte_process_info.nodename);
|
||||
}
|
||||
if (NULL == job->instance) {
|
||||
asprintf(&job->instance, "%d", orte_process_info.pid);
|
||||
}
|
||||
if (0 == orte_exit_status) {
|
||||
asprintf(&msg, "Job %s:%s complete", job->name, job->instance);
|
||||
orte_notifier.log(ORTE_NOTIFIER_INFO, 0, msg);
|
||||
} else {
|
||||
asprintf(&msg, "Job %s:%s terminated abnormally", job->name, job->instance);
|
||||
orte_notifier.log(ORTE_NOTIFIER_ALERT, orte_exit_status, msg);
|
||||
}
|
||||
free(msg);
|
||||
/* this job object will be release during finalize */
|
||||
}
|
||||
|
||||
orte_jobs_complete();
|
||||
/* if I am the only daemon alive, then I can exit now */
|
||||
if (0 == orte_routed.num_routes()) {
|
||||
|
@ -37,15 +37,12 @@
|
||||
#include "opal/dss/dss.h"
|
||||
#include "opal/dss/dss_types.h"
|
||||
|
||||
#include "orte/util/show_help.h"
|
||||
#include "orte/runtime/orte_globals.h"
|
||||
#include "orte/mca/errmgr/errmgr.h"
|
||||
#include "orte/mca/notifier/base/base.h"
|
||||
#include "notifier_hnp.h"
|
||||
|
||||
/* Global variables */
|
||||
opal_pointer_array_t orte_notifier_hnp_tables;
|
||||
opal_mutex_t orte_notifier_hnp_tables_lock;
|
||||
|
||||
/* Static API's */
|
||||
static int init(void);
|
||||
static void finalize(void);
|
||||
@ -258,19 +255,6 @@ static int init(void)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Construct a list of SOS tables, one for each process.
|
||||
ADK: Since we are not doing proper error trace analysis
|
||||
and/or aggregation, each process maintains a separate SOS
|
||||
table and individually sends each entry in the table to
|
||||
the HNP. */
|
||||
/*
|
||||
OBJ_CONSTRUCT(&orte_notifier_hnp_tables, opal_pointer_array_t);
|
||||
opal_pointer_array_init(&orte_notifier_hnp_tables,
|
||||
orte_process_info.num_procs,
|
||||
INT32_MAX, 8);
|
||||
OBJ_CONSTRUCT(&orte_notifier_hnp_tables_lock, opal_mutex_t);
|
||||
*/
|
||||
|
||||
#if OPAL_ENABLE_DEBUG
|
||||
/* If we're debugging, also add an exception handler -- just to
|
||||
watch for problems in the RML */
|
||||
@ -290,9 +274,6 @@ static void finalize(void)
|
||||
{
|
||||
/* If I'm the HNP, then cancel the non-blocking RML receive */
|
||||
if (ORTE_PROC_IS_HNP) {
|
||||
OBJ_DESTRUCT(&orte_notifier_hnp_tables);
|
||||
OBJ_DESTRUCT(&orte_notifier_hnp_tables_lock);
|
||||
|
||||
orte_rml.recv_cancel(ORTE_NAME_WILDCARD, ORTE_RML_TAG_NOTIFIER_HNP);
|
||||
}
|
||||
}
|
||||
@ -305,8 +286,13 @@ static void mylog(orte_notifier_base_severity_t severity, int errcode,
|
||||
/* If there was a message, output it */
|
||||
vasprintf(&output, msg, ap);
|
||||
|
||||
if (NULL != output && !ORTE_PROC_IS_HNP) {
|
||||
send_command(severity, errcode, output);
|
||||
if (NULL != output) {
|
||||
if (ORTE_PROC_IS_HNP) {
|
||||
/* output it locally */
|
||||
orte_show_help("opal_sos_reporter.txt", "notifier message", false, output);
|
||||
} else {
|
||||
send_command(severity, errcode, output);
|
||||
}
|
||||
free(output);
|
||||
}
|
||||
}
|
||||
@ -318,8 +304,13 @@ static void myhelplog(orte_notifier_base_severity_t severity, int errcode,
|
||||
|
||||
output = opal_show_help_vstring(filename, topic, false, ap);
|
||||
|
||||
if (NULL != output && !ORTE_PROC_IS_HNP) {
|
||||
send_command(severity, errcode, output);
|
||||
if (NULL != output) {
|
||||
if (ORTE_PROC_IS_HNP) {
|
||||
/* output it locally */
|
||||
orte_show_help("opal_sos_reporter.txt", "notifier message", false, output);
|
||||
} else {
|
||||
send_command(severity, errcode, output);
|
||||
}
|
||||
free(output);
|
||||
}
|
||||
}
|
||||
@ -330,13 +321,23 @@ static void mypeerlog(orte_notifier_base_severity_t severity, int errcode,
|
||||
{
|
||||
char *buf = orte_notifier_base_peer_log(errcode, peer_proc, msg, ap);
|
||||
|
||||
if (NULL != buf && !ORTE_PROC_IS_HNP) {
|
||||
send_command(severity, errcode, buf);
|
||||
if (NULL != buf) {
|
||||
if (ORTE_PROC_IS_HNP) {
|
||||
/* output it locally */
|
||||
orte_show_help("opal_sos_reporter.txt", "notifier message", false, buf);
|
||||
} else {
|
||||
send_command(severity, errcode, buf);
|
||||
}
|
||||
free(buf);
|
||||
}
|
||||
}
|
||||
|
||||
static void myeventlog(const char *msg)
|
||||
{
|
||||
send_command(ORTE_NOTIFIER_NOTICE, ORTE_SUCCESS, (char *)msg);
|
||||
if (ORTE_PROC_IS_HNP) {
|
||||
/* output it locally */
|
||||
orte_show_help("opal_sos_reporter.txt", "notifier message", false, (char*)msg);
|
||||
} else {
|
||||
send_command(ORTE_NOTIFIER_NOTICE, ORTE_SUCCESS, (char *)msg);
|
||||
}
|
||||
}
|
||||
|
@ -53,6 +53,7 @@
|
||||
#endif
|
||||
#include "opal/runtime/opal.h"
|
||||
#include "opal/dss/dss.h"
|
||||
#include "opal/mca/if/base/base.h"
|
||||
|
||||
#include "orte/mca/errmgr/errmgr.h"
|
||||
#include "orte/mca/errmgr/base/base.h"
|
||||
@ -298,6 +299,15 @@ void orte_info_open_components(void)
|
||||
map->components = &opal_crs_base_components_available;
|
||||
opal_pointer_array_add(&component_map, map);
|
||||
#endif
|
||||
|
||||
if (OPAL_SUCCESS != opal_if_base_open()) {
|
||||
goto error;
|
||||
}
|
||||
map = OBJ_NEW(orte_info_component_map_t);
|
||||
map->type = strdup("if");
|
||||
map->components = &opal_if_components;
|
||||
opal_pointer_array_add(&component_map, map);
|
||||
|
||||
|
||||
/* OPAL's installdirs base open has already been called as part of
|
||||
* opal_init_util() back in main().
|
||||
|
@ -196,6 +196,7 @@ int main(int argc, char *argv[])
|
||||
#if OPAL_ENABLE_FT_CR == 1
|
||||
opal_pointer_array_add(&mca_types, "crs");
|
||||
#endif
|
||||
opal_pointer_array_add(&mca_types, "if");
|
||||
|
||||
#if !ORTE_DISABLE_FULL_SUPPORT
|
||||
opal_pointer_array_add(&mca_types, "debugger");
|
||||
|
@ -2,10 +2,11 @@
|
||||
# -*- perl -*-
|
||||
#
|
||||
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
@ -30,7 +31,9 @@ my $CXX = "@CXX@";
|
||||
my $extra_includes = "@ORTE_WRAPPER_EXTRA_INCLUDES@";
|
||||
my $extra_cppflags = "@ORTE_WRAPPER_EXTRA_CPPFLAGS@";
|
||||
my $extra_cflags = "@ORTE_WRAPPER_EXTRA_CFLAGS@";
|
||||
my $extra_cflags_prefix = "@ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@";
|
||||
my $extra_cxxflags = "@ORTE_WRAPPER_EXTRA_CXXFLAGS@";
|
||||
my $extra_cxxflags_prefix = "@ORTE_WRAPPER_EXTRA_CXXFLAGS_PREFIX@";
|
||||
my $extra_ldflags = "@ORTE_WRAPPER_EXTRA_LDFLAGS@";
|
||||
my $extra_libs = "@ORTE_WRAPPER_EXTRA_LIBS@";
|
||||
#my $cxx_lib = "@ORTE_WRAPPER_CXX_LIB@";
|
||||
@ -43,6 +46,7 @@ my $lang = "none";
|
||||
my $comp = ""; # this is a sentinal from configure
|
||||
my $preproc_flags = $include_flag . $includedir;
|
||||
my $comp_flags = "";
|
||||
my $comp_flags_prefix = "";
|
||||
my $linker_flags = $libdir_flag . $libdir . " " . $extra_ldflags;
|
||||
my $libs = "-lopen-rte -lopen-pal " . $extra_libs;
|
||||
|
||||
@ -78,12 +82,14 @@ if (basename($0) eq "ortecc") {
|
||||
$comp = check_env("CC", $CC);
|
||||
$preproc_flags .= " " . add_extra_includes();
|
||||
$comp_flags = $extra_cflags;
|
||||
$comp_flags_prefix = $extra_cflags_prefix;
|
||||
# no special libs for C
|
||||
} elsif (basename($0) eq "ortec++") {
|
||||
$lang = "C++";
|
||||
$comp = check_env("CXX", $CXX);
|
||||
$preproc_flags .= " " . add_extra_includes();
|
||||
$comp_flags = $extra_cxxflags;
|
||||
$comp_flags_prefix = $extra_cxxflags_prefix;
|
||||
# $libs = $cxx_lib . " " . $libs;
|
||||
}
|
||||
|
||||
@ -142,8 +148,12 @@ my @exec_argv = ();
|
||||
|
||||
# assemble command
|
||||
push(@exec_argv, split(' ', $comp));
|
||||
# Per https://svn.open-mpi.org/trac/ompi/ticket/2201, add all the user
|
||||
# arguments before anything else.
|
||||
# Per tickets https://svn.open-mpi.org/trac/ompi/ticket/2474, and
|
||||
# https://svn.open-mpi.org/trac/ompi/ticket/2201, construct command
|
||||
# with some system arguments before user arguments and some after.
|
||||
if ($want_compile == 1) {
|
||||
push(@exec_argv, split(' ', $comp_flags_prefix));
|
||||
}
|
||||
push(@exec_argv, @appargs);
|
||||
if ($want_preproc == 1) {
|
||||
push(@exec_argv, split(' ', $preproc_flags));
|
||||
|
@ -14,6 +14,7 @@ compiler_flags_env=CXXFLAGS
|
||||
compiler=@CXX@
|
||||
extra_includes=@ORTE_WRAPPER_EXTRA_INCLUDES@
|
||||
preprocessor_flags=@ORTE_WRAPPER_EXTRA_CPPFLAGS@
|
||||
compiler_flags_prefix=@ORTE_WRAPPER_EXTRA_CXXFLAGS_PREFIX@
|
||||
compiler_flags=@ORTE_WRAPPER_EXTRA_CXXFLAGS@
|
||||
linker_flags=@ORTE_WRAPPER_EXTRA_LDFLAGS@
|
||||
libs=-lopen-rte @ORTE_WRAPPER_EXTRA_LIBS@
|
||||
|
@ -14,6 +14,7 @@ compiler_flags_env=CFLAGS
|
||||
compiler=@CC@
|
||||
extra_includes=@ORTE_WRAPPER_EXTRA_INCLUDES@
|
||||
preprocessor_flags=@ORTE_WRAPPER_EXTRA_CPPFLAGS@
|
||||
compiler_flags_prefix=@ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@
|
||||
compiler_flags=@ORTE_WRAPPER_EXTRA_CFLAGS@
|
||||
linker_flags=@ORTE_WRAPPER_EXTRA_LDFLAGS@
|
||||
libs=-lopen-rte @ORTE_WRAPPER_EXTRA_LIBS@
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user