[OMPI users] problem building static w/ 1.1.2_rc4
c/x86_64-redhat-linux/3.4.6/../../../../lib64/libc.a(malloc.o) /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/libc.a(malloc.o)(.text+0x2a50): In function `_int_valloc': : multiple definition of `_int_valloc' /apps/x86_64/mpi/openmpi/gcc-3.4.6/openmpi-1.1.2_rc4-ofed/lib/libopal.a(lt1-malloc.o)(.text+0x3d71): first defined here /usr/bin/ld: Warning: size of symbol `_int_valloc' changed from 69 in /apps/x86_64/mpi/openmpi/gcc-3.4.6/openmpi-1.1.2_rc4-ofed/lib/libopal.a(lt1-malloc.o) to 71 in /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/libc.a(malloc.o) /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/libc.a(malloc.o)(.text+0x2c10): In function `_int_realloc': : multiple definition of `_int_realloc' /apps/x86_64/mpi/openmpi/gcc-3.4.6/openmpi-1.1.2_rc4-ofed/lib/libopal.a(lt1-malloc.o)(.text+0x2cd8): first defined here /usr/bin/ld: Warning: size of symbol `_int_realloc' changed from 765 in /apps/x86_64/mpi/openmpi/gcc-3.4.6/openmpi-1.1.2_rc4-ofed/lib/libopal.a(lt1-malloc.o) to 1273 in /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/libc.a(malloc.o) /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/libc.a(malloc.o)(.text+0x42c0): In function `__malloc_check_init': : multiple definition of `__malloc_check_init' /apps/x86_64/mpi/openmpi/gcc-3.4.6/openmpi-1.1.2_rc4-ofed/lib/libopal.a(lt1-malloc.o)(.text+0x631): first defined here /usr/bin/ld: Warning: size of symbol `__malloc_check_init' changed from 141 in /apps/x86_64/mpi/openmpi/gcc-3.4.6/openmpi-1.1.2_rc4-ofed/lib/libopal.a(lt1-malloc.o) to 164 in /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/libc.a(malloc.o) collect2: ld returned 1 exit status When I try mpicc, its seemingly unable to find some symbols, even when I add the right library: [root@dlogin2 examples]# mpicc -static -o cpi cpi.c -L/usr/lib64 -lsysfs ... ... Same 'multiple definition' stuff as above, followed by: ... /usr/ofed/lib64/libibverbs.a(src_libibverbs_la-init.o)(.text+0x23b): In function `ibverbs_init': : undefined reference to `sysfs_open_class' /usr/ofed/lib64/libibverbs.a(src_libibverbs_la-init.o)(.text+0x2d0): In function `ibverbs_init': : undefined reference to `sysfs_get_class_devices' /usr/ofed/lib64/libibverbs.a(src_libibverbs_la-init.o)(.text+0x2e4): In function `ibverbs_init': : undefined reference to `dlist_start' /usr/ofed/lib64/libibverbs.a(src_libibverbs_la-init.o)(.text+0x2f1): In function `ibverbs_init': : undefined reference to `_dlist_mark_move' /usr/ofed/lib64/libibverbs.a(src_libibverbs_la-init.o)(.text+0x334): In function `ibverbs_init': : undefined reference to `sysfs_open_class_device' collect2: ld returned 1 exit status [root@dlogin2 examples]# nm /usr/lib64/libsysfs.a |grep sysfs_open_class_device 0d60 T sysfs_open_class_device 0170 T sysfs_open_class_device_path I configured ompi with '--with-openib=/usr/ofed --with-tm=/apps/torque --enable-static --without-libnuma' . Is there something I missed doing in order to be able to compile static binaries? Any help is greatly appreciated. -JE -- --- Josh England Sandia National Laboratory, Albuquerque, NM Infrastructure Computing Systems email: jjen...@sandia.gov phone: (505) 284-0963
Re: [OMPI users] problem building static w/ 1.1.2_rc4
On Sat, 2006-10-14 at 09:35 -0400, Jeff Squyres wrote: > - What exactly is your intent: a) do you want 100% static executables > (to include the normal Linux system libraries), b) do you just want > to avoid having to set LD_LIBRARY_PATH for some of the esoteric > libraries such as libmpi, libtorque, libibverbs, etc., or c) > something else? The intent is more along the line of b). > Given the messages from the linker and my prior mail, I'm not sure > that a) is possible -- it will require more poking around to know for > sure. b) is definitely possible simply by using --enable-static and > --disable-shared and then using "mpicc" (and friends) as normal. > OMPI will be built statically (to include torque and libibverbs, > assuming you have .a's versions of both of those), but as Scott > mentioned, system libraries such as dl and sysfs will be linked > dynamically. This sounds feasible, but it seems to me that if I configure Open MPI to build both static and shared libraries in the same build, I should be able to build both static and shared binaries from the same build. This is the behavior seen with other MPI implementations. Is there a way to get this behavior in Open MPI without having to deploy two different installations, one shared and one purely static? -JE
Re: [OMPI users] problem building static w/ 1.1.2_rc4
On Sat, 2006-10-14 at 09:35 -0400, Jeff Squyres wrote: > Given the messages from the linker and my prior mail, I'm not sure > that a) is possible -- it will require more poking around to know for > sure. b) is definitely possible simply by using --enable-static and > and then using "mpicc" (and friends) as normal. > OMPI will be built statically (to include torque and libibverbs, > assuming you have .a's versions of both of those), but as Scott > mentioned, system libraries such as dl and sysfs will be linked > dynamically. OK. I've got a build with --enable-static and --disable-shared, and I'm still seeing the *exact* same behavior. I cannot build a static library either with mpicc or specifying a manual link line. Note that this appears to be a problem only with 1.1.2_rc4. Open MPI version 1.1.1 seems to work. -JE
Re: [OMPI users] problem building static w/ 1.1.2_rc4
On Sun, 2006-10-15 at 23:31 -0600, Josh England wrote: > On Sat, 2006-10-14 at 09:35 -0400, Jeff Squyres wrote: > > Given the messages from the linker and my prior mail, I'm not sure > > that a) is possible -- it will require more poking around to know for > > sure. b) is definitely possible simply by using --enable-static and > > and then using "mpicc" (and friends) as normal. > > OMPI will be built statically (to include torque and libibverbs, > > assuming you have .a's versions of both of those), but as Scott > > mentioned, system libraries such as dl and sysfs will be linked > > dynamically. > > OK. I've got a build with --enable-static and --disable-shared, and I'm > still seeing the *exact* same behavior. I cannot build a static library > either with mpicc or specifying a manual link line. Note that this > appears to be a problem only with 1.1.2_rc4. Open MPI version 1.1.1 > seems to work. Sorry. I wrote too fast. Version 1.1.1 actually *does not* work for static builds either. It exhibits the same problem described in the original post. -JE
[OMPI users] settings not read from env
Hi all, Found a bug maybe: I'm setting the following environment variables: OMPI_MCA_btl="tcp,self" OMPI_MCA_btl_tcp_if_include="eth2" OMPI_MCA_btl_tcp_if_exclude="eth0" However, when I run 'ompi_info --param btl tcp' I see (among other things): MCA btl: parameter "btl" (current value: ) MCA btl: parameter "btl_tcp_if_include" (current value: "eth2") MCA btl: parameter "btl_tcp_if_exclude" (current value: "eth0") ^^^ The btl setting in my environment does not seem to be getting set properly. This looks like a bug, but I might just be doing something wrong. -JE