7f9ae11faf
to make MPI_IN_PLACE (and other sentinel Fortran constants) work on OS X, we need to use the following compiler (linker) flag: -Wl,-commons,use_dylibs So if we're compiling on OS X, test to see if that flag works with the compiler. If so, add it to the wrapper FFLAGS and FCFLAGS (note that per a future update, we'll only have one Fortran compiler anyway). Fixes trac:1982. This commit was SVN r25545. The following Trac tickets were found above: Ticket 1982 --> https://svn.open-mpi.org/trac/ompi/ticket/1982
86 строки
2.6 KiB
C
86 строки
2.6 KiB
C
/*
|
|
* Copyright (c) 2004-2007 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) 2006-2011 Cisco Systems, Inc. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#include "ompi_config.h"
|
|
|
|
#include <stdio.h>
|
|
#ifdef HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
#include <string.h>
|
|
|
|
#include "opal/util/gethostname.h"
|
|
#include "opal/util/opal_sos.h"
|
|
|
|
#include "ompi/mpi/c/bindings.h"
|
|
#include "ompi/runtime/params.h"
|
|
#include "ompi/communicator/communicator.h"
|
|
#include "ompi/errhandler/errhandler.h"
|
|
|
|
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
|
|
#pragma weak MPI_Get_processor_name = PMPI_Get_processor_name
|
|
#endif
|
|
|
|
#if OMPI_PROFILING_DEFINES
|
|
#include "ompi/mpi/c/profile/defines.h"
|
|
#endif
|
|
|
|
static const char FUNC_NAME[] = "MPI_Get_processor_name";
|
|
|
|
|
|
int MPI_Get_processor_name(char *name, int *resultlen)
|
|
{
|
|
int rc;
|
|
char *tmp;
|
|
|
|
OPAL_CR_NOOP_PROGRESS();
|
|
|
|
if ( MPI_PARAM_CHECK) {
|
|
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
|
if ( NULL == name ) {
|
|
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_ARG,
|
|
FUNC_NAME);
|
|
}
|
|
if ( NULL == resultlen ) {
|
|
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_ARG,
|
|
FUNC_NAME);
|
|
}
|
|
}
|
|
|
|
/* A simple implementation of this function using gethostname.
|
|
|
|
Note that MPI-2.1 requires:
|
|
- terminating the string with a \0
|
|
- name[*resultlen] == '\0'
|
|
- and therefore (*resultlen) cannot be > (MPI_MAX_PROCESSOR_NAME-1)
|
|
|
|
Guard against gethostname() returning a *really long* hostname
|
|
and not null-terminating the string. The Fortran API version
|
|
will pad to the right if necessary. */
|
|
rc = opal_gethostname(&tmp);
|
|
OMPI_ERRHANDLER_CHECK(rc, MPI_COMM_WORLD, rc, FUNC_NAME);
|
|
|
|
strncpy(name, tmp, MPI_MAX_PROCESSOR_NAME - 1);
|
|
name[MPI_MAX_PROCESSOR_NAME - 1] = '\0';
|
|
*resultlen = (int) strlen(name);
|
|
|
|
free(tmp);
|
|
return MPI_SUCCESS;
|
|
}
|