Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] hwloc causes compilation to fail
From: Nathan Hjelm (hjelmn_at_[hidden])
Date: 2011-02-09 10:37:21


I ran into an error compiling the trunk on one of our clusters. It appears that a bug in glibc (version 2.5) causes __pthread_cleanup_routine to be defined when pthread.h is included and compiling with -std=gnu99 and -fexceptions.

The obvious fix is for lanl to upgrade either the cluser's gcc (which undoubtedly has a workaround) or glibc. But, seeing OpenMPI can not require c99 (as much as I would like to require c99) it might be a good idea to remove the c99 requirement on hwloc.

Any comments? Better ideas?

Error:
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_module.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(bind.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(cpuset.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(misc.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(topology-linux.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(topology-synthetic.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(topology-x86.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(topology-xml.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(topology.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(traversal.o): In function `__pthread_cleanup_routine':
/usr/include/pthread.h:580: multiple definition of `__pthread_cleanup_routine'
mca/paffinity/hwloc/.libs/libmca_paffinity_hwloc.a(paffinity_hwloc_component.o):/usr/include/pthread.h:580: first defined here

-Nathan Hjelm
HPC-3, LANL