Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] EXTERNAL: Re: Trouble compiling 1.4.3 with PGI 10.9 compilers
From: Reuti (reuti_at_[hidden])
Date: 2011-09-27 14:43:39


Am 27.09.2011 um 01:16 schrieb Jeff Squyres:

> On Sep 26, 2011, at 6:53 PM, Blosch, Edwin L wrote:
>
>> Actually I can download OpenMPI 1.5.4, 1.4.4rc3 or 1.4.3 - and ALL
>> of them build just fine.
>>
>> Apparently what isn't working is the version of 1.4.3 that I have
>> downloaded and copied from place to place, i.e. timestamps on files
>> may have changed (otherwise the files are the same).
>
> Are you copying the source tree around, like "cp -r
> my_orig_ompi_tree my_new_ompi_tree"?
>
> If so, you might be running into timestamp issues. Automake is
> actually fairly sensitive to timestamps; it makes tarballs in fairly
> specific ordering so that the timestamps will be correct when you un-
> tar them.
>
> You might be able to get away with something like "cp -rp my_orig
> my_new". But I find it usually just easier to just un-tar the
> original tarball

I don't know your exact test scenario: but it's not necessary to have
the same source multiple times on the machine. You can create
directories foobar1 and foobar2 at the same level as openmpi-1.4.3 and
issue inside ../openmpi-1.4.3/configure [options] (i.e. going up one
level and then address the necessary source's configure).

AFAIK this is fully supported by the GNU build tools and to me it
looks working.

BTW: you are using PGI 10.9 as it's the last version you have access
to? They are at 11.8 by now.

-- Reuti

>>
>> It seems to be a configure behavior, but I don't understand enough
>> to figure it out. Perhaps you can advise me.
>>
>> Key differences that I noted were:
>>
>> (1) in config.log, the configure command that gets rerun appears to
>> add some arguments in the bad build:
>>
>> Bad build includes the underlined 3 options at the end below:
>> $ ./configure --prefix=/release/cfd/openmpi-pgi --without-tm --
>> without-sge --without-lsf --without-psm --without-portals --without-
>> gm --without-elan --without-slurm --without-loadleveler --enable-
>> mpirun-prefix-by-default --enable-contrib-no-build=vt --enable-mca-
>> no-build=maffinity --disable-per-user-config-files --disable-io-
>> romio --enable-static --disable-shared --with-wrapper-cflags=-
>> Msignextend --with-wrapper-cxxflags=-Msignextend CXX=/appserv/pgi/
>> linux86-64/10.9/bin/pgCC CC=/appserv/pgi/linux86-64/10.9/bin/pgcc
>> CFLAGS= -O2 -Mcache_align -Minfo -Msignextend -Msignextend
>> CXXFLAGS= -O2 -Mcache_align -Minfo -Msignextend -Msignextend F77=/
>> appserv/pgi/linux86-64/10.9/bin/pgf95 FFLAGS=-D_GNU_SOURCE -O2 -
>> Mcache_align -Minfo -Munixlogical FC=/appserv/pgi/linux86-64/10.9/
>> bin/pgf95 FCFLAGS=-D_GNU_SOURCE -O2 -Mcache_align -Minfo -
>> Munixlogical LDFLAGS= -Bstatic_pgi --enable-ltdl-convenience --no-
>> create --no-recursion
>>
>> Good build:
>> $ ./configure --prefix=/release/cfd/openmpi-pgi --without-tm --
>> without-sge --without-lsf --without-psm --without-portals --without-
>> gm --without-elan --without-slurm --without-loadleveler --enable-
>> mpirun-prefix-by-default --enable-contrib-no-build=vt --enable-mca-
>> no-build=maffinity --disable-per-user-config-files --disable-io-
>> romio --enable-static --disable-shared --with-wrapper-cflags=-
>> Msignextend --with-wrapper-cxxflags=-Msignextend CXX=/appserv/pgi/
>> linux86-64/10.9/bin/pgCC CC=/appserv/pgi/linux86-64/10.9/bin/pgcc
>> CFLAGS= -O2 -Mcache_align -Minfo -Msignextend -Msignextend
>> CXXFLAGS= -O2 -Mcache_align -Minfo -Msignextend -Msignextend F77=/
>> appserv/pgi/linux86-64/10.9/bin/pgf95 FFLAGS=-D_GNU_SOURCE -O2 -
>> Mcache_align -Minfo -Munixlogical FC=/appserv/pgi/linux86-64/10.9/
>> bin/pgf95 FCFLAGS=-D_GNU_SOURCE -O2 -Mcache_align -Minfo -
>> Munixlogical LDFLAGS= -Bstatic_pgi
>>
>> (2) in configure itself, the version number is missing in the bad
>> build:
>>
>> Bad build:
>> #! /bin/sh
>> # Guess values for system-dependent variables and create Makefiles.
>> # Generated by GNU Autoconf 2.63 for Open MPI .
>>
>> Good build:
>> #! /bin/sh
>> # Guess values for system-dependent variables and create Makefiles.
>> # Generated by GNU Autoconf 2.63 for Open MPI 1.4.3.
>> #
>>
>> (3) also in configure, the good build has picked up availability of
>> pgfortran but the bad one does not:
>>
>> - Bad build: for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32
>> af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort
>> ifc efc pgf95 lf95 ftn
>>
>> - Good build: for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32
>> af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort
>> ifc efcpgfortran pgf95 lf95 ftn
>>
>>
>> If you have any idea what could cause these differences, I’m all
>> ears…
>>
>> Thanks
>>
>> Ed
>>
>>
>> -----Original Message-----
>> From: users-bounces_at_[hidden] [mailto:users-bounces_at_open-
>> mpi.org] On Behalf Of Jeff Squyres
>> Sent: Saturday, September 24, 2011 8:23 AM
>> To: Open MPI Users
>> Subject: EXTERNAL: Re: [OMPI users] Trouble compiling 1.4.3 with
>> PGI 10.9 compilers
>>
>> Just out of curiosity, does Open MPI 1.5.4 build properly?
>>
>> We've seen problems with the PGI compiler suite before -- it *does*
>> look like a problem with libtool-building issues; e.g., a switch is
>> too old or is missing or something. Meaning: it looks like PGI
>> thinks it's trying to build an application, not a library. This is
>> usually bit rot in libtool (i.e., PGI may have changed their
>> options, but we're using an older Libtool in the 1.4.x series that
>> doesn't know about this option).
>>
>> I do note that we fixed some libtool issues in the 1.4.4 tarball;
>> could you try the 1.4.4rc and see if that fixes the issue? If not,
>> we might have missed some patches to bring over to the v1.4 branch.
>>
>> http://www.open-mpi.org/software/ompi/v1.4/
>>
>>
>>
>> On Sep 20, 2011, at 1:16 PM, Blosch, Edwin L wrote:
>>
>>> I'm having trouble building 1.4.3 using PGI 10.9. I searched the
>>> list archives briefly but I didn't stumble across anything that
>>> looked like the same problem, so I thought I'd ask if an expert
>>> might recognize the nature of the problem here.
>>>
>>> The configure command:
>>>
>>> ./configure --prefix=/release/openmpi-pgi --without-tm --without-
>>> sge --enable-mpirun-prefix-by-default --enable-contrib-no-build=vt
>>> --enable-mca-no-build=maffinity --disable-per-user-config-files --
>>> disable-io-romio --with-mpi-f90-size=small --enable-static --
>>> disable-shared --with-wrapper-cflags=-Msignextend --with-wrapper-
>>> cxxflags=-Msignextend CXX=/appserv/pgi/linux86-64/10.9/bin/pgCC
>>> CC=/appserv/pgi/linux86-64/10.9/bin/pgcc 'CFLAGS= -O2 -
>>> Mcache_align -Minfo -Msignextend -Msignextend' 'CXXFLAGS= -O2 -
>>> Mcache_align -Minfo -Msignextend -Msignextend' F77=/appserv/pgi/
>>> linux86-64/10.9/bin/pgf95 'FFLAGS=-D_GNU_SOURCE -O2 -Mcache_align
>>> -Minfo -Munixlogical' FC=/appserv/pgi/linux86-64/10.9/bin/pgf95
>>> 'FCFLAGS=-D_GNU_SOURCE -O2 -Mcache_align -Minfo -Munixlogical'
>>> 'LDFLAGS= -Bstatic_pgi'
>>>
>>> The place where the build eventually dies:
>>>
>>> /bin/sh ../../../libtool --tag=CXX --mode=link /appserv/pgi/
>>> linux86-64/10.9/bin/pgCC -DNDEBUG -O2 -Mcache_align -Minfo -
>>> Msignextend -Msignextend -version-info 0:1:0 -export-dynamic -
>>> Bstatic_pgi -o libmpi_cxx.la -rpath /release/cfd/openmpi-pgi/lib
>>> mpicxx.lo intercepts.lo comm.lo datatype.lo win.lo
>>> file.lo ../../../ompi/libmpi.la -lnsl -lutil -lpthread
>>> libtool: link: tpldir=Template.dir
>>> libtool: link: rm -rf Template.dir
>>> libtool: link: /appserv/pgi/linux86-64/10.9/bin/pgCC --
>>> prelink_objects --instantiation_dir Template.dir mpicxx.o
>>> intercepts.o comm.o datatype.o win.o file.o
>>> pgCC-Warning-prelink_objects switch is deprecated
>>> pgCC-Warning-instantiation_dir switch is deprecated
>>> /usr/lib64/crt1.o: In function `_start':
>>> /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/
>>> start.S:109: undefined reference to `main'
>>> mpicxx.o: In function `__sti___9_mpicxx_cc_a6befbec':
>>> (.text+0x49): undefined reference to `ompi_mpi_errors_are_fatal'
>>> mpicxx.o: In function `__sti___9_mpicxx_cc_a6befbec':
>>> (.text+0x62): undefined reference to `ompi_mpi_errors_return'
>>> mpicxx.o: In function `__sti___9_mpicxx_cc_a6befbec':
>>> (.text+0x7b): undefined reference to
>>> `ompi_mpi_errors_throw_exceptions'
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>>
>> --
>> Jeff Squyres
>> jsquyres_at_[hidden]
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>
>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>