Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] [EXTERNAL] Re: Unable to set flags using platform files in the 1.6 release
From: Ralph Castain (rhc_at_[hidden])
Date: 2012-05-23 16:44:39


I'm looking at it...

We pickup the file at the right place, but we don't pull any of the flags out of it until later. I'm trying to see if I can adjust it.

BTW: none of this changed from the 1.5 series, so this has been the situation for a very long time.

On May 23, 2012, at 2:41 PM, Barrett, Brian W wrote:

> 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" <dog_at_[hidden]> 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" <dog_at_[hidden]> 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_at_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_at_tu-fe1 62%)
>>>>
>>>> For OMPI 1.4.5, the platform file check occurs right off:
>>>>
>>>> (dog_at_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_at_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_at_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" <dog_at_[hidden]> 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
>>>>>>> devel_at_[hidden]
>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>>>
>>>>>> _______________________________________________
>>>>>> devel mailing list
>>>>>> devel_at_[hidden]
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> devel_at_[hidden]
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>
>>>>
>>>> _______________________________________________
>>>> devel mailing list
>>>> devel_at_[hidden]
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>
>>>>
>>>
>>>
>>> --
>>> Brian W. Barrett
>>> Dept. 1423: Scalable System Software
>>> Sandia National Laboratories
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> devel mailing list
>>> devel_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>>
>
>
> --
> Brian W. Barrett
> Dept. 1423: Scalable System Software
> Sandia National Laboratories
>
>
>
>
>
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel