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