[vlad@bd01 Parallel-MPI-Simple-0.03]$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
Can't load 'blib/arch/auto/Parallel/MPI/Simple/Simple.so' for module P
+arallel::MPI::Simple: blib/arch/auto/Parallel/MPI/Simple/Simple.so: u
+ndefined symbol: ompi_mpi_char at /usr/lib64/perl5/5.10.0/x86_64-linu
+x-thread-multi/DynaLoader.pm line 203. at ic.pl line 3
This appears to be a loader problem, although I am not sure, any assistance is greatly appreciated.
What I did:
perl Makefile.PL CC=mpicc CCFLAGS="-lopenmpi -m64 -L/usr/local/lib/ope
+nmpi -L/usr/local/lib/" LIB=/usr/local/lib
[vlad@bd01 Parallel-MPI-Simple-0.03]$ make
mpicc -c -lopenmpi -m64 -L/usr/local/lib/openmpi -L/usr/local/lib/ -
+O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protec
+tor --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"0.03\
+" -DXS_VERSION=\"0.03\" -fPIC "-I/usr/lib64/perl5/5.10.0/x86_64-linux
+-thread-multi/CORE" Simple.c
Simple.xs: In function ‘_Gather’:
Simple.xs:131: warning: null argument where non-null required (argumen
+t 3)
Simple.xs:124: warning: unused variable ‘rank’
Simple.xs: In function ‘_Comm_split’:
Simple.xs:204: warning: unused variable ‘realcolour’
Simple.c: In function ‘Finalize’:
Simple.xs:111: warning: control reaches end of non-void function
Simple.c: In function ‘Barrier’:
Simple.xs:106: warning: control reaches end of non-void function
Simple.c: In function ‘Init’:
Simple.xs:82: warning: control reaches end of non-void function
Simple.c: In function ‘_Gather’:
Simple.xs:160: warning: ‘buf_lens’ may be used uninitialized in this f
+unction
Running Mkbootstrap for Parallel::MPI::Simple ()
chmod 644 Simple.bs
rm -f blib/arch/auto/Parallel/MPI/Simple/Simple.so
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -
+fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic Simple
+.o -o blib/arch/auto/Parallel/MPI/Simple/Simple.so \
\
chmod 755 blib/arch/auto/Parallel/MPI/Simple/Simple.so
cp Simple.bs blib/arch/auto/Parallel/MPI/Simple/Simple.bs
chmod 644 blib/arch/auto/Parallel/MPI/Simple/Simple.bs
Manifying blib/man3/Parallel::MPI::Simple.3pm
These warnings appear harmless enough...
However make test fails as described above.
Background:
- using openmpi 1.4.1 which seems to run the examples ok.
- ldconfig output is:
vlad@bd01 Parallel-MPI-Simple-0.03]$ ldconfig -p | grep mpi
libopenmpi_malloc.so.0 (libc6,x86-64) => /usr/local/lib/libopenmpi
+_malloc.so.0
libopenmpi_malloc.so (libc6,x86-64) => /usr/local/lib/libopenmpi_m
+alloc.so
libmpi_f90.so.0 (libc6,x86-64) => /usr/local/lib/libmpi_f90.so.0
libmpi_f90.so (libc6,x86-64) => /usr/local/lib/libmpi_f90.so
libmpi_f77.so.0 (libc6,x86-64) => /usr/local/lib/libmpi_f77.so.0
libmpi_f77.so (libc6,x86-64) => /usr/local/lib/libmpi_f77.so
libmpi_cxx.so.0 (libc6,x86-64) => /usr/local/lib/libmpi_cxx.so.0
libmpi_cxx.so (libc6,x86-64) => /usr/local/lib/libmpi_cxx.so
libmpi.so.0 (libc6,x86-64) => /usr/local/lib/libmpi.so.0
libmpi.so (libc6,x86-64) => /usr/local/lib/libmpi.so
libexempi.so.3 (libc6,x86-64) => /usr/lib64/libexempi.so.3
- libmpi.so defines the symbol openmpi_mpi_char:
[[vlad@bd01 Parallel-MPI-Simple-0.03]$ objdump -tT /usr/local/lib/libm
+pi.so.0 | grep mpi_char
0000000000296920 g O .data 0000000000000200 ompi_m
+pi_char
0000000000296b20 g O .data 0000000000000200 ompi_m
+pi_character
0000000000296b20 g DO .data 0000000000000200 Base ompi_m
+pi_character
0000000000296920 g DO .data 0000000000000200 Base ompi_m
+pi_char
- However the file Simple.so does not appear to look for this lib:
[vlad@bd01 Parallel-MPI-Simple-0.03]$ ldd blib/arch/auto/Parallel
+/MPI/Simple/Simple.so
linux-vdso.so.1 => (0x00007fffaa1fe000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcaa1ae4000)
/lib64/ld-linux-x86-64.so.2 (0x0000003da7a00000)
System is FC10 x86_64
What am I missing?
|