Yup, it sucks. But that's not supported functionality. Someone could possibly desire to support it, but I could never get behavior I was comfortable with, so I'm not making promises that should work. The platform thing is a real hack to begin with in terms of what it does to autoconf...
Brian On 5/23/12 2:37 PM, "Gunter, David O" <d...@lanl.gov> wrote: >So perhaps I should stop calling them environment variables. Since one >can always do something like > >$ ./configure CFLAGS="-I/usr/include/specialK" ... > >a line such as > >CFLAGS="-I/usr/include/specialK" > >should be supported by the platform file reader. No two systems are >alike here and we need these platform files to manage the dozens of >different OMPI builds. We have different paths for the IB libs, Panasas >file system libs and includes, etc. Essentially, we're not going to 1.6 >at the moment. > >-david > >-- >David Gunter >HPC-3: Infrastructure Team >Los Alamos National Laboratory > > > > >On May 23, 2012, at 2:23 PM, Barrett, Brian W wrote: > >> David - >> >> Where exactly the platform file gets evaluated depends on a number of >> things that the OMPI developers don't have a lot of control over. It >>was >> never meant to be used to set environment variables, only command line >> arguments. It looks like something bad has happened with ordering; I'm >> not sure when I'll be able to take a look, but we should be able to make >> it evaluate sooner... >> >> Brian >> >> On 5/23/12 2:16 PM, "Gunter, David O" <d...@lanl.gov> wrote: >> >>> I think I have some understanding of what is happening. In version 1.6, >>> the check for the platform file occurs after some basic compiler >>>testing >>> has already occured: >>> >>> (dog@tu-fe1 61%) ./configure --with-platform=non-existant >>> >>> >>>======================================================================== >>>== >>> == >>> == Configuring Open MPI >>> >>>======================================================================== >>>== >>> == >>> >>> *** Startup tests >>> checking build system type... x86_64-unknown-linux-gnu >>> checking host system type... x86_64-unknown-linux-gnu >>> checking target system type... x86_64-unknown-linux-gnu >>> checking for gcc... gcc >>> checking whether the C compiler works... yes >>> checking for C compiler default output file name... a.out >>> checking for suffix of executables... >>> checking whether we are cross compiling... no >>> checking for suffix of object files... o >>> checking whether we are using the GNU C compiler... yes >>> checking whether gcc accepts -g... yes >>> checking for gcc option to accept ISO C89... none needed >>> checking how to run the C preprocessor... gcc -E >>> checking for grep that handles long lines and -e... /bin/grep >>> checking for egrep... /bin/grep -E >>> checking for ANSI C header files... yes >>> checking for sys/types.h... yes >>> checking for sys/stat.h... yes >>> checking for stdlib.h... yes >>> checking for string.h... yes >>> checking for memory.h... yes >>> checking for strings.h... yes >>> checking for inttypes.h... yes >>> checking for stdint.h... yes >>> checking for unistd.h... yes >>> checking minix/config.h usability... no >>> checking minix/config.h presence... no >>> checking for minix/config.h... no >>> checking whether it is safe to define __EXTENSIONS__... yes >>> configure: error: platform file non-existant not found >>> (dog@tu-fe1 62%) >>> >>> For OMPI 1.4.5, the platform file check occurs right off: >>> >>> (dog@tu-fe1 13%) ./configure --with-platform=non-existant >>> configure: error: platform file non-existant not found >>> >>> >>> As it is in the newer release, it will fail to work for the PGI >>>compilers >>> then. >>> >>> -david >>> >>> -- >>> David Gunter >>> HPC-3: Infrastructure Team >>> Los Alamos National Laboratory >>> >>> >>> >>> >>> On May 23, 2012, at 12:21 PM, Gunter, David O wrote: >>> >>>> I thought the purpose of the platform file was to be equivalent to >>>> setting things on the command-line to configure. Still, it has always >>>> worked that way for us. >>>> >>>> Here's what I'm seeing: >>>> >>>> (dog@lo1-fe 297%) ./configure >>>> --prefix=/usr/projects/hpcsoft/lobo/openmpi/1.6.0-pgi-12.4 >>>> --with-platform=./optimized-panasas-pgi >>>> >>>> >>>> >>>>======================================================================= >>>>== >>>> === >>>> == Configuring Open MPI >>>> >>>> >>>>======================================================================= >>>>== >>>> === >>>> >>>> *** Startup tests >>>> checking build system type... x86_64-unknown-linux-gnu >>>> checking host system type... x86_64-unknown-linux-gnu >>>> checking target system type... x86_64-unknown-linux-gnu >>>> checking for gcc... >>>> /usr/projects/hpcsoft/lobo/pgi/linux86-64/12.4/bin/pgcc >>>> checking whether the C compiler works... no >>>> configure: error: in `/usr/projects/hpctools/dog/openmpi/openmpi-1.6': >>>> configure: error: C compiler cannot create executables >>>> See `config.log' for more details >>>> >>>> >>>> The error happens because this particular compiler, pgi-12.4, needs >>>>two >>>> flags: -lnomp and -lnuma. Thus the reason for the LDFLAGS line in the >>>> platform file. >>>> >>>> If I compile like this: >>>> >>>> (dog@lo1-fe 297%) ./configure >>>> --prefix=/usr/projects/hpcsoft/lobo/openmpi/1.6.0-pgi-12.4 >>>> --with-platform=./optimized-panasas-pgi LDFLAGS="-nomp -lnuma" >>>> >>>> Then the configure proceeds normally. >>>> >>>> -david >>>> -- >>>> David Gunter >>>> HPC-3: Infrastructure Team >>>> Los Alamos National Laboratory >>>> >>>> >>>> >>>> >>>> On May 23, 2012, at 12:03 PM, Jeff Squyres (jsquyres) wrote: >>>> >>>>> Can you send some output showing that those flags aren't passed >>>>> through, like some output from "make V=1" and or from config.log? >>>>> >>>>> Offhand, I don't know if we ever formally supported setting env >>>>> variables other than enable and with flag variables in the platform >>>>> files...? >>>>> >>>>> Sent from my phone. No type good. >>>>> >>>>> On May 23, 2012, at 12:49 PM, "Gunter, David O" <d...@lanl.gov> wrote: >>>>> >>>>>> I am trying to set LDFLAGS, CFLAGS, etc, in a platform file but the >>>>>> 1.6 release does not seem to pick these up. >>>>>> >>>>>> Here's the tail end of one of our platform files, for building with >>>>>> the latest PGI compilers: >>>>>> >>>>>> LDFLAGS="-nomp -lnuma" >>>>>> CFLAGS="-I/opt/panfs/include" >>>>>> CXXFLAGS="-I/opt/panfs/include" >>>>>> FCFLAGS="-I/opt/panfs/include" >>>>>> FFLAGS="-I/opt/panfs/include" >>>>>> CCASFLAGS="-I/opt/panfs/include" >>>>>> >>>>>> The same platform file will configure the 1.4.5 release just fine >>>>>>but >>>>>> does not work with 1.6. If I set these variables in my environment >>>>>>and >>>>>> then run configure, it works just fine - as expected. >>>>>> >>>>>> Has anyone else noticed this behavior? >>>>>> >>>>>> -david >>>>>> -- >>>>>> David Gunter >>>>>> HPC-3: Infrastructure Team >>>>>> Los Alamos National Laboratory >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> devel mailing list >>>>>> de...@open-mpi.org >>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>> >>>>> _______________________________________________ >>>>> devel mailing list >>>>> de...@open-mpi.org >>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>> >>>> >>>> _______________________________________________ >>>> devel mailing list >>>> de...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> >>> >> >> >> -- >> Brian W. Barrett >> Dept. 1423: Scalable System Software >> Sandia National Laboratories >> >> >> >> >> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/devel > > >_______________________________________________ >devel mailing list >de...@open-mpi.org >http://www.open-mpi.org/mailman/listinfo.cgi/devel > > -- Brian W. Barrett Dept. 1423: Scalable System Software Sandia National Laboratories