Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] autodetect broken
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-07-21 19:48:06


Arrgh!! Even with .ompi_ignore, everything is broken on OS X and
Linux (perhaps this is what Ralph was referring to -- not a compile
time problem?):

-----
$ mpicc -g -Isrc -c -o libmpitest.o libmpitest.c
Cannot open configuration file ${datadir}/openmpi/mpicc-wrapper-data.txt
Error parsing data file mpicc: Not found
-----

$#%@#$%@#$%@#$%#$!!!!!

Given that it's happening on 2 different OS's, this is enough to
convince me that r21723 is unfortunately borked. I'm going to back it
out.

On Jul 21, 2009, at 7:13 PM, Iain Bason wrote:

>
> On Jul 21, 2009, at 6:34 PM, Jeff Squyres wrote:
>
> > I'm quite confused about what this component did to the base
> > functions. I haven't had a chance to digest it properly, but it
> > "feels wrong"... Iain -- can you please explain the workings of
> > this component and its interactions with the base?
>
> The autodetect component gets loaded after the environment component,
> and before the config component. So environment variables like
> OPAL_PREFIX will override it.
>
> When it loads, it finds the directory containing libopen-pal.so
> (assuming that is where the autodetect component actually is) and sets
> its install_dirs_data.libdir to that. The other fields of
> install_dirs_data are set to "${infer-libdir}". So when the base
> component loads autodetect, and no environment variables have set any
> of the fields, opal_install_dirs.everything_except_libdir is set to "$
> {infer-libdir}".
>
> (If the autodetect component is statically linked into an application,
> then it will set bindir rather than libdir.)
>
> The base component looks for fields set to "${infer-foo}", and calls
> opal_install_dirs_infer to figure out what the field should be. For
> example, if opal_install_dirs.prefix is set to "${infer-libdir}", then
> it calls opal_install_dirs_infer("prefix", "libdir}", 6, &component-
> >install_dirs_data).
>
> Opal_install_dirs_infer expands everything in component-
> >install_dirs_data.libdir *except* "${prefix}". Let's say that ompi
> was configured so that libdir is "${prefix}/lib", and the actual path
> to libopen-pal.so is /usr/local/lib/libopen-pal.so. The autodetect
> component will have set opal_install_dirs.libdir to "/usr/local/lib".
> It matches the tail of "${prefix}/lib" to "/usr/local/lib", and infers
> that the remainder must be the prefix, so it sets
> opal_install_dirs.prefix to "/usr/local".
>
> Other directories (e.g., pkgdatadir) presumably cannot be inferred
> from libdir, and opal_install_dirs_infer will return NULL. The config
> component will then load some value into that field, and things will
> work as they did before.
>
> Iain
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>

-- 
Jeff Squyres
jsquyres_at_[hidden]