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:
https://svn.open-mpi.org/trac/ompi/changeset/24224 This was to close CMR https://svn.open-mpi.org/trac/ompi/ticket/2670, which was the port to v1.4 from the original Trac ticket https://svn.open-mpi.org/trac/ompi/ticket/2586. 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 libopenmpi_malloc.so, > 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,libopenmpi_malloc.so.0 -o .libs/libopenmpi_malloc.so.0.0.0 > > 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,libopenmpi_malloc.so.0 -o > .libs/libopenmpi_malloc.so.0.0.0 > > 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 > libopenmpi_malloc.so 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 libopenmpi_malloc.la >>> -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,libopenmpi_malloc.so.0 -o >>> .libs/libopenmpi_malloc.so.0.0.0 >>> 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]: *** [libopenmpi_malloc.la] 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 >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >> >> >> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/