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
|