Sorry guys -- this one slipped off the radar.  You're right that it didn't make 
it into v1.4.1.

Short version
-------------

I looked into this yesterday and chatted with some other OMPI developers about 
it.  We agree; we can move the user options up in the command line creation.  
I'll file a ticket for this for 1.4.2.

Longer version
--------------

I just checked into this (thanks for the reminder about Fortran compilers; 
ugh!).  I grok the problem explified by HDF5.

Here's a little background -- Open MPI's wrappers build the command line 
something like this:

- start with a blank argv
- add the compiler
- add OMPI's CPP flags
- add OMPI's CFLAGS / CXXFLAGS / FFLAGS / FCFLAGS (depending on the language)
- add all the user args
- add OMPI's LDFLAGS
- add OMPI's LIBS

(there's some conditionals in there, of course, but let's consider the simple 
case where everything is added)

I talked this over with Brian Barrett; we initially constructed the command 
line this way because we through there would be ramifications of the user 
command line overriding some of OMPI's CPP flags (e.g., -D_REENTRANT).  
However, some testing yesterday, and a bunch of "well, would this cause a 
problem?"s, and we convinced ourselves that you're right.

Like I mentioned above, I'll file a ticket about this (and CC you guys) and 
ensure that it gets into 1.4.2.

Thanks for your persistence; please feel free to bump us if we neglect to reply 
to stuff (despite best intentions, sometimes issues just fall on the floor -- 
but they can be picked up!).  Also note that we now allow random people to get 
accounts on our Trac system; you can file tickets, add comments, add yourself 
to the CC to see when tickets are updated, etc.





On Jan 19, 2010, at 1:39 PM, Justin Bronder wrote:

> On 04/12/09 16:20 -0500, Jeff Squyres wrote:
> > Oy -- more specifically, we should not be putting -I/usr/include on the 
> > command line *at all* (because it's special and already included by the 
> > compiler search paths; similar for /usr/lib and /usr/lib64).  We should 
> > have some special case code that looks for /usr/include and simply drops 
> > it.  Let me check and see what's going on...
> >
> 
> I believe this was initially added here: 
> https://svn.open-mpi.org/trac/ompi/ticket/870
> 
> > Can you send the contents of your 
> > $prefix/share/openmpi/mpif90-wrapper-data.txt?  (it is *likely* in that 
> > directory, but it could be somewhere else under prefix as well -- the 
> > mpif90-wrapper-data.txt file is the important one)
> >
> >
> >
> > On Dec 4, 2009, at 1:08 PM, Jed Brown wrote:
> >
> > > Open MPI is installed by the distro with headers in /usr/include
> > >
> > >   $ mpif90 -showme:compile -I/some/special/path
> > >   -I/usr/include -pthread -I/usr/lib/openmpi -I/some/special/path
> > >
> > > Here's why it's a problem:
> > >
> > > HDF5 is also installed in /usr with modules at /usr/include/h5*.mod.  A
> > > new HDF5 cannot be compiled using the wrappers because it will always
> > > resolve the USE statements to /usr/include which is binary-incompatible
> > > with the the new version (at a minimum, they "fixed" the size of an
> > > argument to H5Lget_info_f between 1.8.3 and 1.8.4).
> > >
> > > To build the library, the current choices are
> > >
> > >   (a) get rid of the system copy before building
> > >   (b) not use mpif90 wrapper
> > >
> > >
> > > I just checked that MPICH2 wrappers consistently put command-line args
> > > before the wrapper args.
> > >
> > > Jed
> 
> Any news on this?  It doesn't look like it made it into the 1.4.1 release.
> Also, it's not just /usr/include that is a problem, but the fact that the
> wrappers are passing their paths before the user specified ones.  Here's an
> example using mpich2 and openmpi with non-standard install paths.
> 
> Mpich2 (Some output stripped as mpicc -compile_info prints everything):
> jbronder@mejis ~ $ which mpicc
> /usr/lib64/mpi/mpi-mpich2/usr/bin/mpicc
> jbronder@mejis ~ $ mpicc -compile_info -I/bleh
> x86_64-pc-linux-gnu-gcc -I/bleh -I/usr/lib64/mpi/mpi-mpich2/usr/include
> 
> OpenMPI:
> jbronder@mejis ~ $ which mpicc
> /usr/lib64/mpi/mpi-openmpi/usr/bin/mpicc
> jbronder@mejis ~ $ mpicc -showme:compile -I/bleh
> -I/usr/lib64/mpi/mpi-openmpi/usr/include/openmpi -pthread -I/bleh
> 
> 
> Thanks,
> 
> --
> Justin Bronder
> 
> <ATT3130120.dat>_______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


-- 
Jeff Squyres
jsquy...@cisco.com


Reply via email to