Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Problem building OpenMPI 1.4.4 with PGI 11.7 compilers
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2011-11-08 20:57:35

It looks like we added a patch to the libtool bootstrap in the 1.4.4 tarball (because we're using a quite old version of Libtool to build that tarball) in r24224:

This was to close CMR, which was the port to v1.4 from the original Trac ticket

It *looks* like this patch is supposed to allow -tp <foo> to pass through Libtool.

The Libtool sh here is quite complex; I'm not sure I'm reading it right. Can you try -tp=shanghai-64 instead of "-tp shanghai-64"?

On Nov 8, 2011, at 5:14 PM, Gustavo Correa wrote:

> Thank you, Samuel
> I was hoping not to have to change my Gnu auto tools in the cluster.
> I remain a bit skeptical that libtool is the main culprit.
> Somehow OpenMPI 1.4.3 builds fine in the very same computer
> with the same libtool, same PGI 11.7, same compiler flags.
> In the OMPI 1.4.3 make log there are several lines with 'libtool: link: pgcc' followed
> by all compiler flags.
> In addition, the specific line that links,
> correctly strips off *all* compiler flags, it doesn't leave the '-tp' behind,
> hence pgcc can do its job.
> I would guess this is the right thing to do, no funny optimization flags chosen by
> the user in a malloc library.
> Here it is:
> libtool: link: pgcc -shared -fpic -DPIC .libs/dummy.o -lnsl -lutil -lc -Wl,-soname -Wl, -o .libs/
> However, the same setup doesn't work with OMPI 1.4.4.
> That particular line in the make log is [note the added '-tp']:
> libtool: link: pgcc -shared -fpic -DPIC .libs/dummy.o -lnsl -lutil -lc -tp -Wl,-soname -Wl, -o .libs/
> Hence, I am more inclined to think that there was a change from the 1.4.3 to
> the 1.4.4 configure script, that somehow forgot how to handle the PGI quirks,
> and is no longer stripping correctly the user CFLAGS when it links the
> library.
> I can send the gzipped configure and make logs of 1.4.3 and 1.4.4 if that helps.
> I didn't do it so as not to bother the list with bulky files.
> Many thanks,
> Gus Correa
> On Nov 8, 2011, at 4:24 PM, Samuel K. Gutierrez wrote:
>> Hi,
>> I think I've seen this before.
>> I can't speak to the details surrounding this issue, but when I upgraded to the newest version of libtool, the problem went away <shrug>.
>> Take a look at "Use of GNU m4, Autoconf, Automake, and Libtool" in our HACKING file. libtool-2.4.2.tar.gz **should** work, if that's the problem that you are experiencing.
>> I would suggest starting with a fresh source tree, before you try again.
>> Hope that helps,
>> Samuel K. Gutierrez
>> Los Alamos National Laboratory
>> On Nov 8, 2011, at 2:06 PM, Gustavo Correa wrote:
>>> Dear OpenMPI pros
>>> When I try to build OpenMPI 1.4.4 with PGI compilers 11.7 [pgcc, pgcc, pgfortran]
>>> I get the awkward error message on the bottom of this email.
>>> I say awkward because I assigned the value 'shanghai-64' to the '-tp' flag,
>>> as you can see from the successful 'libtool:compile' command in the error message.
>>> However, the subsequent 'libtool:link' command has '-tp' without a value.
>>> Note that the remaining flags '-fast -Mfprelaxed' were also dropped in the libtool:link command.
>>> The 'partial' flag '-tp' is worse than no flag at all, and the pgcc compiler fails.
>>> By contrast, OpenMPI 1.4.3 builds just fine with the same compilers and
>>> the same compiler flags.
>>> Is this the revival of an old idiosyncrasy between libtool and PGI?
>>> Could perhaps the OMPI 1.4.4. configure script have stripped off my compiler flags after '-tp',
>>> when passing it to libtool in link mode? [Somehow it works in 1.4.3.]
>>> Is there any workaround or patch?
>>> Many thanks,
>>> Gus Correa
>>> ******
>>> More details:
>>> CentOS Linux 5.2 x86_64, libtool 1.5.22, PGI 11.7.
>>> Configure parameters:
>>> export CC=pgcc
>>> export CXX=pgcpp
>>> export F77='pgfortran'
>>> export FC=${F77}
>>> export CFLAGS='-tp shanghai-64 -fast -Mfprelaxed'
>>> export CXXFLAGS=${CFLAGS}
>>> export FFLAGS=${CFLAGS}
>>> export FCFLAGS=${FFLAGS}
>>> ../configure \
>>> --prefix=${MYINSTALLDIR} \
>>> --with-libnuma=/usr \
>>> --with-tm=/opt/torque/2.4.11/gnu-4.1.2 \
>>> --with-openib=/usr \
>>> --enable-static \
>>> 2>&1 | tee configure_${build_id}.log
>>> ****
>>> #################### ERROR MESSAGE ###########################
>>> libtool: compile: pgcc -DHAVE_CONFIG_H -I. -I../../../../../opal/mca/memory/ptmalloc2 -I../../../../opal/include -I../../../../orte/include -I../../../../ompi/include -I../../../../opal/mca/paffinity/linux/plpa/src/libplpa -DMALLOC_DEBUG=0 -D_GNU_SOURCE=1 -DUSE_TSD_DATA_HACK=1 -DMALLOC_HOOKS=1 -I../../../../../opal/mca/memory/ptmalloc2/sysdeps/pthread -I../../../../../opal/mca/memory/ptmalloc2/sysdeps/generic -I../../../../.. -I../../../.. -I../../../../../opal/include -I../../../../../orte/include -I../../../../../ompi/include -D_REENTRANT -DNDEBUG -tp shanghai-64 -fast -Mfprelaxed -c ../../../../../opal/mca/memory/ptmalloc2/dummy.c -o dummy.o >/dev/null 2>&1
>>> /bin/sh ../../../../libtool --tag=CC --mode=link pgcc -DNDEBUG -tp shanghai-64 -fast -Mfprelaxed -export-dynamic -o -rpath /home/sw/openmpi/1.4.4/pgi-11.7/lib dummy.lo -lnsl -lutil
>>> libtool: link: pgcc -shared -fpic -DPIC .libs/dummy.o -lnsl -lutil -lc -tp -Wl,-soname -Wl, -o .libs/
>>> pgcc-Fatal-Switch -tp must have a value
>>> -tp=amd64|amd64e|athlon|athlonxp|barcelona|barcelona-32|barcelona-64|core2|core2-32|core2-64|istanbul|istanbul-32|istanbul-64|k7|k8|k8-32|k8-64|k8-64e|nehalem|nehalem-32|nehalem-64|p5|p6|p7|p7-32|p7-64|penryn|penryn-32|penryn-64|piii|piv|px|px-32|px-64|sandybridge|sandybridge-32|sandybridge-64|shanghai|shanghai-32|shanghai-64|x64
>>> Choose target processor type
>>> amd64 Same as -tp k8-64
>>> amd64e Same as -tp k8-64e
>>> athlon AMD 32-bit Athlon Processor
>>> athlonxp AMD 32-bit Athlon XP Processor
>>> barcelona AMD Barcelona processor
>>> barcelona-32 AMD Barcelona processor, 32-bit mode
>>> barcelona-64 AMD Barcelona processor, 64-bit mode
>>> core2 Intel Core-2 Architecture
>>> core2-32 Intel Core-2 Architecture, 32-bit mode
>>> core2-64 Intel Core-2 Architecture, 64-bit mode
>>> istanbul AMD Istanbul processor
>>> istanbul-32 AMD Istanbul processor, 32-bit mode
>>> istanbul-64 AMD Istanbul processor, 64-bit mode
>>> k7 AMD Athlon Processor
>>> k8 AMD64 Processor
>>> k8-32 AMD64 Processor 32-bit mode
>>> k8-64 AMD64 Processor 64-bit mode
>>> k8-64e AMD64 Processor rev E or later, 64-bit mode
>>> nehalem Intel Nehalem processor
>>> nehalem-32 Intel Nehalem processor, 32-bit mode
>>> nehalem-64 Intel Nehalem processor, 64-bit mode
>>> p5 Intel P5 Pentium Architecture
>>> p6 Intel P6 Architecture (Pentium Pro, II, III)
>>> p7 Intel P7 Architecture (Pentium 4, Xeon, Centrino)
>>> p7-32 Intel P7 Architecture (Pentium 4, Xeon, Centrino)
>>> p7-64 Intel P7 Architecture with EM64T, 64-bit mode
>>> penryn Intel Penryn Architecture
>>> penryn-32 Intel Penryn Architecture, 32-bit mode
>>> penryn-64 Intel Penryn Architecture, 64-bit mode
>>> piii Intel Pentium III
>>> piv Intel Pentium 4
>>> px Generic x86 Processor
>>> px-32 Generic x86 Processor, 32-bit mode
>>> px-64 Generic x86-64 architecture
>>> sandybridge Intel SandyBridge processor
>>> sandybridge-32 Intel SandyBridge processor, 32-bit mode
>>> sandybridge-64 Intel SandyBridge processor, 64-bit mode
>>> shanghai AMD Shanghai processor
>>> shanghai-32 AMD Shanghai processor, 32-bit mode
>>> shanghai-64 AMD Shanghai processor, 64-bit mode
>>> x64 Unified AMD/Intel 64-bit mode
>>> make[2]: *** [] Error 2
>>> make[2]: Leaving directory `/home/swinst/openmpi/1.4.4/openmpi-1.4.4/build_pgi-11.7/opal/mca/memory/ptmalloc2'
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory `/home/swinst/openmpi/1.4.4/openmpi-1.4.4/build_pgi-11.7/opal'
>>> make: *** [all-recursive] Error 1
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
> _______________________________________________
> users mailing list
> users_at_[hidden]

Jeff Squyres
For corporate legal information go to: