Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Compiling Open MPI with PGI compilers in 32-bit mode
From: Ethan Mallove (ethan.mallove_at_[hidden])
Date: 2009-03-30 14:11:27


FYI - there is a Libtool thread/patch that resolved this issue:

  http://lists.gnu.org/archive/html/libtool/2009-03/msg00035.html

-Ethan

On Fri, Mar/20/2009 01:36:58PM, Ethan Mallove wrote:
> On Fri, Mar/20/2009 01:09:56PM, Ethan Mallove wrote:
> > Let me try this again. Below is the error from OMPI 1.3r20826. In my
> > last email, I accidentally posted the compiler error from Sun's
> > internal OMPI source repository.
> >
> > $ cd opal/mca/memory/ptmalloc2
> > $ make
> > /bin/sh ../../../../libtool --tag=CC --mode=link pgcc -O -DNDEBUG -tp=k8-32 -export-dynamic -o libopenmpi-malloc.la -rpath /opt/SUNWhpc/HPC8.2/pgi/lib malloc.lo malloc-stats.lo -lnsl -lutil -lpthread
> > libtool: link: pgcc -shared -fpic -DPIC .libs/malloc.o .libs/malloc-stats.o -lnsl -lutil -lpthread -lc -Wl,-soname -Wl,libopenmpi-malloc.so.0 -o .libs/libopenmpi-malloc.so.0.0.0
> > /usr/bin/ld: warning: i386 architecture of input file `.libs/malloc.o' is incompatible with i386:x86-64 output
> > /usr/bin/ld: warning: i386 architecture of input file `.libs/malloc-stats.o' is incompatible with i386:x86-64 output
> > .libs/malloc.o(.text+0x14d3): In function `munmap_chunk':
> > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > .libs/malloc.o(.text+0x1550): In function `mremap_chunk':
> > : undefined reference to `opal_mem_hooks_release_hook'
> > .libs/malloc.o(.text+0x2bd2): In function `_int_free':
> > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > .libs/malloc.o(.text+0x309e): In function `_int_realloc':
> > : undefined reference to `opal_mem_hooks_release_hook'
> > .libs/malloc.o(.text+0x3c1a): In function `opal_mem_free_ptmalloc2_sbrk':
> > : undefined reference to `opal_mem_hooks_release_hook'
> > .libs/malloc.o(.text+0x3f9b): In function `ptmalloc_init':
> > : undefined reference to `opal_mem_hooks_set_support'
> > .libs/malloc.o(.text+0x409d): In function `new_heap':
> > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > .libs/malloc.o(.text+0x40c5): In function `new_heap':
> > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > .libs/malloc.o(.text+0x413f): In function `new_heap':
> > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > .libs/malloc.o(.text+0x4188): In function `new_heap':
> > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > .libs/malloc.o(.text+0x4272): In function `heap_trim':
> > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > .libs/malloc.o(.text+0x449a): In function `arena_get2':
> > : undefined reference to `opal_atomic_wmb'
> > make: *** [libopenmpi-malloc.la] Error 2
>
> I think we have located the problem. Libtool has stripped out
> the -tp=k8-32 flag in the link step:
>
> /bin/sh ../../../../libtool --tag=CC --mode=link pgcc -O -DNDEBUG -tp=k8-32 -export-dynamic -o libopenmpi-malloc.la -rpath /opt/SUNWhpc/HPC8.2/pgi/lib malloc.lo malloc-stats.lo -lnsl -lutil -lpthread
> libtool: link: pgcc -shared -fpic -DPIC .libs/malloc.o .libs/malloc-stats.o -lnsl -lutil -lpthread -lc -Wl,-soname -Wl,libopenmpi-malloc.so.0 -o .libs/libopenmpi-malloc.so.0.0.0
>
> If I add it back in manually, all is well:
>
> $ pgcc -tp=k8-32 -shared -fpic -DPIC .libs/malloc.o .libs/malloc-stats.o -lnsl -lutil -lpthread -lc -Wl,-soname -Wl,libopenmpi-malloc.so.0 -o .libs/libopenmpi-malloc.so.0.0.0
>
> I am guessing there is some macro (LDFLAGS?) that I can override to
> prevent Libtool from stripping out the -tp=k8-32 flag.
>
> -Ethan
>
>
> >
> > -Ethan
> >
> >
> > On Fri, Mar/20/2009 12:49:06PM, Ethan Mallove wrote:
> > > Hi,
> > >
> > > Has anyone successfully compiled Open MPI with the PGI compilers in
> > > 32-bit mode (e.g., using -tp=k8-32 flag)? I am getting the following
> > > error with 32-bit:
> > >
> > > $ cd opal/mca/memory/ptmalloc2
> > > $ make
> > > /bin/sh ../../../../libtool --tag=CC --mode=link pgcc -O -DNDEBUG -tp=k8-32 -export-dynamic -o libopenmpi-malloc.la -rpath /opt/SUNWhpc/HPC8.2/pgi/lib malloc.lo malloc-stats.lo -lnsl -lutil -lpthread
> > > libtool: link: pgcc -shared -fpic -DPIC .libs/malloc.o .libs/malloc-stats.o -lnsl -lutil -lpthread -lc -Wl,-soname -Wl,libopenmpi-malloc.so.0 -o .libs/libopenmpi-malloc.so.0.0.0
> > > /usr/bin/ld: warning: i386 architecture of input file `.libs/malloc.o' is incompatible with i386:x86-64 output
> > > /usr/bin/ld: warning: i386 architecture of input file `.libs/malloc-stats.o' is incompatible with i386:x86-64 output
> > > .libs/malloc.o(.text+0xcb3): In function `realloc_check':
> > > : undefined reference to `opal_memcpy_base_module'
> > > .libs/malloc.o(.text+0x14e3): In function `munmap_chunk':
> > > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > > .libs/malloc.o(.text+0x1560): In function `mremap_chunk':
> > > : undefined reference to `opal_mem_hooks_release_hook'
> > > .libs/malloc.o(.text+0x2be2): In function `_int_free':
> > > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > > .libs/malloc.o(.text+0x30ae): In function `_int_realloc':
> > > : undefined reference to `opal_mem_hooks_release_hook'
> > > .libs/malloc.o(.text+0x3c2a): In function `opal_mem_free_ptmalloc2_sbrk':
> > > : undefined reference to `opal_mem_hooks_release_hook'
> > > .libs/malloc.o(.text+0x3fab): In function `ptmalloc_init':
> > > : undefined reference to `opal_mem_hooks_set_support'
> > > .libs/malloc.o(.text+0x40ad): In function `new_heap':
> > > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > > .libs/malloc.o(.text+0x40d5): In function `new_heap':
> > > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > > .libs/malloc.o(.text+0x414f): In function `new_heap':
> > > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > > .libs/malloc.o(.text+0x4198): In function `new_heap':
> > > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > > .libs/malloc.o(.text+0x4282): In function `heap_trim':
> > > : undefined reference to `opal_mem_free_ptmalloc2_munmap'
> > > .libs/malloc.o(.text+0x44aa): In function `arena_get2':
> > > : undefined reference to `opal_atomic_wmb'
> > > make: *** [libopenmpi-malloc.la] Error 2
> > >
> > > -Ethan
> > > _______________________________________________
> > > users mailing list
> > > users_at_[hidden]
> > > http://www.open-mpi.org/mailman/listinfo.cgi/users
> > _______________________________________________
> > users mailing list
> > users_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users