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

Reply via email to