Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Jack Howarth (howarth_at_[hidden])
Date: 2007-05-28 12:59:35

   On MacOS X, the current v1.1.5 and v1.2.2 sources for openmpi
create shared libraries with undefined environ symbols. This
problem on MacOS X and the available workarounds are discussed
on the fink wiki section on Porting Notes...

There are quite a number of source files which will need to
be patched to fix this. For example, openmpi 1.2.2 shows...

openmpi-1.2.2/ompi/communicator/comm_dyn.c:extern char **environ;
openmpi-1.2.2/opal/tools/wrappers/opal_wrapper.c:extern char **environ;
openmpi-1.2.2/orte/mca/odls/base/odls_private.h:ORTE_DECLSPEC int orte_odls_base_purge_environment(char ***environ);
openmpi-1.2.2/orte/mca/pls/bproc/pls_bproc.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/gridengine/pls_gridengine_module.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/poe/pls_poe_component.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/poe/pls_poe_module.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/rsh/pls_rsh_component.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/rsh/pls_rsh_component.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/rsh/pls_rsh_module.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/slurm/pls_slurm_module.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/tm/pls_tm_module.c:extern char **environ;
openmpi-1.2.2/orte/mca/pls/xgrid/src/pls_xgrid_client.m:char **environ;
openmpi-1.2.2/orte/mca/rmgr/base/rmgr_base_check_context.c:extern char **environ;
openmpi-1.2.2/orte/mca/sds/base/base.h: char ***environ);
openmpi-1.2.2/orte/runtime/orte_setup_hnp.c:extern char **environ;
openmpi-1.2.2/orte/tools/orterun/totalview.c:extern char **environ;

I would suggest you look at the second approach proposed in the fink wiki
of modifying configure to check for the presence of the crt_externs.h
header and the _NSGetEnviron symbol directly.
ps This issue arises when trying to build packages like paraview
which won't link its shared libraries due to the undefined environ symbol.
I would also note this issue is discussed at...