I'm afraid this still doesn't work for me - on my Centos box: ../../../ompi/.libs/libmpi.so: undefined reference to `opal_memory_linux_malloc_init_hook'
I tried it with a brand new checkout of the trunk. Any ideas? IIRC, we wound up here because we were trying to avoid rolling libopal into liborte into libmpi and instead having three completely separable libraries. Given that we haven't been able to make that work across platforms, is it time to give up and return to what worked? On Mar 21, 2013, at 4:05 PM, svn-commit-mai...@open-mpi.org wrote: > Author: brbarret (Brian Barrett) > Date: 2013-03-21 19:05:54 EDT (Thu, 21 Mar 2013) > New Revision: 28202 > URL: https://svn.open-mpi.org/trac/ompi/changeset/28202 > > Log: > * Fix issue with duplicate symbol for the initialize hook due to it existing > in both libmpi and libopen-pal by removing the one for libopen-pal. This > won't work if we eventually need registration caching in opal/orte, but I'm > hoping that by that point, OFED will have gotten off its butt and properly > integrated ummunotify into the verbs layer so that this code can go away. > > At the same time, fix a minor issue where the init hook was being called > twice, once by the libc malloc and once by our malloc by removing the call > from our malloc. > > Text files modified: > trunk/ompi/runtime/ompi_mpi_init.c | 2 +- > > trunk/opal/mca/memory/linux/arena.c | 3 +++ > > trunk/opal/mca/memory/linux/hooks.c | 5 ----- > > 3 files changed, 4 insertions(+), 6 deletions(-) > > Modified: trunk/ompi/runtime/ompi_mpi_init.c > ============================================================================== > --- trunk/ompi/runtime/ompi_mpi_init.c Thu Mar 21 13:13:46 2013 > (r28201) > +++ trunk/ompi/runtime/ompi_mpi_init.c 2013-03-21 19:05:54 EDT (Thu, > 21 Mar 2013) (r28202) > @@ -95,7 +95,7 @@ > implicity from libmpi, there are times when the malloc initialize > hook in the memory component doesn't work. So we have to do it > from here, since any MPI code is going to call MPI_Init... */ > -void (*__malloc_initialize_hook) (void) = > +OPAL_DECLSPEC void (*__malloc_initialize_hook) (void) = > opal_memory_linux_malloc_init_hook; > #endif > > > Modified: trunk/opal/mca/memory/linux/arena.c > ============================================================================== > --- trunk/opal/mca/memory/linux/arena.c Thu Mar 21 13:13:46 2013 > (r28201) > +++ trunk/opal/mca/memory/linux/arena.c 2013-03-21 19:05:54 EDT (Thu, > 21 Mar 2013) (r28202) > @@ -462,8 +462,11 @@ > if(s[0]) mALLOPt(M_CHECK_ACTION, (int)(s[0] - '0')); > __malloc_check_init(); > } > +#if 0 > + /* OMPI Change: Don't call the initialize hook; it was us. */ > if(__malloc_initialize_hook != NULL) > (*__malloc_initialize_hook)(); > +#endif > > __malloc_initialized = 1; > } > > Modified: trunk/opal/mca/memory/linux/hooks.c > ============================================================================== > --- trunk/opal/mca/memory/linux/hooks.c Thu Mar 21 13:13:46 2013 > (r28201) > +++ trunk/opal/mca/memory/linux/hooks.c 2013-03-21 19:05:54 EDT (Thu, > 21 Mar 2013) (r28202) > @@ -892,11 +892,6 @@ > > > > -/* OMPI change: This is the symbol to override to make the above > - function get fired during malloc initialization time. */ > -void (*__malloc_initialize_hook) (void) = > - opal_memory_linux_malloc_init_hook; > - > /* > * Local variables: > * c-basic-offset: 4 > _______________________________________________ > svn mailing list > s...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/svn