MPICH-1.2.4 with Intel C++ compiler on RedHat 8.0

MPICH-1.2.4 with Intel C++ compiler on RedHat 8.0

I wonder if it is a bug or not, but I am not able to install MPICH-1.2.4 on my Linux box.
Here is my situation:
OS: RedHat 8.0 with kernel 2.4.20smp
Intel Compiler 7.0 (ifc and icc)
Configure option:
./configure -cc=icc -fc=ifc -f90=ifc --with-device=ch_p4
--with-arch=LINUX --prefix=/opt/mpi/mpich124

The configuration was successful, however, the make process failed:
12 Lines Compiled
ar cr /work/source/mpich-1.2.4/lib/libmpichf90nc.a .tmp/mpi.o mpi1.o
if [ ! -d /work/source/mpich-1.2.4/include/f90base ] ; then
mkdir /work/source/mpich-1.2.4/include/f90base ; fi
cp mpi-base.mod /work/source/mpich-1.2.4/include/f90base/MPI.mod
cp MPI_CONSTANTS.mod /work/source/mpich-1.2.4/include/f90base
cp MPI1.mod /work/source/mpich-1.2.4/include/f90base
cp MPI2.mod /work/source/mpich-1.2.4/include/f90base
make --no-print-directory mpi-lib-test
make --no-print-directory profileliblink
Testing that MPI applications can be linked...
make --no-print-directory linktest
make overtake
/work/source/mpich-1.2.4/bin/mpicc -DUSE_SOCKLEN_T -DUSE_U_INT_FOR_XDR
VE_SLEEP=1 -DHAVE_SYSCONF=1 -c overtake.c
/work/source/mpich-1.2.4/bin/mpicc -DUSE_SOCKLEN_T -DUSE_U_INT_FOR_XDR
/work/source/mpich-1.2.4/bin/mpicc -o overtake overtake.o test.o
/work/source/mpich-1.2.4/lib/libmpich.a(p4_utils.o): In function
p4_utils.o(.text+0xcb2): undefined reference to `__bswap_32'
p4_utils.o(.text+0xcc7): undefined reference to `__bswap_32'
/work/source/mpich-1.2.4/lib/libmpich.a(p4_utils.o): In function
p4_utils.o(.text+0x1078): undefined reference to `__bswap_32'
p4_utils.o(.text+0x1082): undefined reference to `__bswap_32'
p4_utils.o(.text+0x108c): undefined reference to `__bswap_32'
/work/source/mpich-1.2.4/lib/libmpich.a(p4_utils.o)(.text+0x1129): more
undefined references to `__bswap_32' follow
make[4]: *** [overtake] Error 1
make[3]: [linktest] Error 2 (ignored)
Could not link a C program with MPI libraries
make[3]: *** [linktest] Error 1
make[2]: *** [linktest] Error 2
make[1]: *** [mpi-lib-test] Error 2
make: *** [mpi] Error 2

I wonder if this is a bug in MPICH-1.2.4 or a bug in Intel's compiler and associated libraries?
The installation is successful with GNU compiler.


Jyh-Shyong Ho, PhD.
Research Scientist
National Center for High-Performance Computing
Hsinchu, Taiwan, ROC

6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I don't think that the Intel C++ compiler is supported under RedHat 8.0. Actually, I think it is the version of glibc under RH8.0 that is not supported.


Hans is correct. The current version of the compiler is not validated on the glibc shipped with Redhat 8.0. A future update of the Intel compiler would be of help.

Jyh-Shyong Ho - Thanks for using this forum.
Hans - Thank you for answering!

here's how i built the mpich libs

i've built for suse 7.3 and rh8.0

./configure blah blah blah
make;make tests;make install
once it works
then ./configure for intel
./configure ifc_blah, ifc_blah
make sure you change the default extensions
after it thrashes around and look in the bin for the new mpf77_intel, blah,
that's it put them wherever you installed the others

You need to apply a patch in bits/byteswap.h
Please refer to

for the patch.

As mentioned by Ganesh, the current version of the compiler is not validated on the glibc shipped with Redhat 8.0, but you may give a try to following workaround for Intel compiler -


#define __bswap_32(x)
({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))


#define __bswap_32(x) __bswap_constant_32 ((unsigned int)x)

in bits/byteswap.h

The above patch and this workaround should solve your


Thanks for the update...


Leave a Comment

Please sign in to add a comment. Not a member? Join today