[mpich-discuss] Duplicated symbols with GCC 4.4.4 on RHEL 5.5 (1.4rc2)

Yauheni Zelenko zelenko at cadence.com
Fri Apr 29 13:28:20 CDT 2011


Hi!

I have duplicated symbols problem with building 1.4rc2 on Red Hat Enterprise Linux Client release 5.5 (Tikanga) with GCC 4.4.4 without --enable-strict.

Next configuration is fine

./configure --prefix=${InstallDir}                                      \
        --with-pm=hydra --with-device=ch3:nemesis                       \
        --disable-chekpointing                                          \
        --enable-strict --enable-fast=O3                                \
        --disable-f77 --disable-fc                                      \
        CC=/grid/common/pkgs/gcc/v4.4.4/bin/gcc CFLAGS="-m32 -fPIC"     \
        CPP=/grid/common/pkgs/gcc/v4.4.4/bin/cpp                        \
        CXX=/grid/common/pkgs/gcc/v4.4.4/bin/g++ CXXFLAGS="-m32 -fPIC"  \
        CXXCPP=/grid/common/pkgs/gcc/v4.4.4/bin/cpp

But:

./configure --prefix=${InstallDir}                                      \
        --with-pm=hydra --with-device=ch3:nemesis                       \
        --disable-chekpointing                                          \
        --enable-fast=O3                                                \
        --disable-f77 --disable-fc                                      \
        CC=/grid/common/pkgs/gcc/v4.4.4/bin/gcc CFLAGS="-m32 -fPIC"     \
        CPP=/grid/common/pkgs/gcc/v4.4.4/bin/cpp                        \
        CXX=/grid/common/pkgs/gcc/v4.4.4/bin/g++ CXXFLAGS="-m32 -fPIC"  \
        CXXCPP=/grid/common/pkgs/gcc/v4.4.4/bin/cpp

Produce multiple errors like:

/home/zelenko/Installs/mpich2-dev/src/src/pm/hydra/tools/bind/hwloc/hwloc/src/.libs/libhwloc_embedded.a(bind.o): In function `pthread_equal':
bind.c:(.text+0x0): multiple definition of `pthread_equal'
/home/zelenko/Installs/mpich2-dev/src/src/pm/hydra/tools/bind/hwloc/hwloc/src/.libs/libhwloc_embedded.a(topology.o):topology.c:(.text+0x480): first defined here
/home/zelenko/Installs/mpich2-dev/src/src/pm/hydra/tools/bind/hwloc/hwloc/src/.libs/libhwloc_embedded.a(bind.o): In function `gnu_dev_major':
bind.c:(.text+0x20): multiple definition of `gnu_dev_major'
/home/zelenko/Installs/mpich2-dev/src/src/pm/hydra/tools/bind/hwloc/hwloc/src/.libs/libhwloc_embedded.a(topology.o):topology.c:(.text+0x0): first defined here
/home/zelenko/Installs/mpich2-dev/src/src/pm/hydra/tools/bind/hwloc/hwloc/src/.libs/libhwloc_embedded.a(bind.o): In function `gnu_dev_minor':
bind.c:(.text+0x40): multiple definition of `gnu_dev_minor'
/home/zelenko/Installs/mpich2-dev/src/src/pm/hydra/tools/bind/hwloc/hwloc/src/.libs/libhwloc_embedded.a(topology.o):topology.c:(.text+0x20): first defined here
/home/zelenko/Installs/mpich2-dev/src/src/pm/hydra/tools/bind/hwloc/hwloc/src/.libs/libhwloc_embedded.a(bind.o): In function `gnu_dev_makedev':
bind.c:(.text+0x80): multiple definition of `gnu_dev_makedev'

Looks like all problematic symbols is defined as __inline in system headrers.

Eugene.


More information about the mpich-discuss mailing list