Linux Perl Program not working
Valerio Daelli
vdaelli at hotmail.com
Thu May 5 05:22:04 PDT 2005
Hello everybody
we are trying to use a linux perl program called Mascot on FreeBSD. It is
statistical-bioinformatic software.
We use this program on Linux RedHat 7.3 (glibc 2.3.2), perl 5.8.6.
We copied the program and the libraries.
We tried installing the ports linux_base (glibc 2.1.3), linux_base-rh-9
(2.3.2).
What actually happens is this:
1) If we use freebsd-perl 5.8.6 (we tried the 'plain' and the ithreads one)
when we launch this application it fails with a Bus error - core dump.
We did a 'strace' on it and it fails after loading some libraries (I report
it at the end). This perl program goes into a 'use msparser;', then the
msparser.pm file calls a msparser.so file which is a Gnu/Linux shared
object. We could't recompile this library since we don't have source code.
We just copied it from Linux.
/msparser.so: ELF 32-bit LSB shared object, Intel 80386,
version 1 (GNU/Linux), not stripped
2) If we use an rpm-installed Active Perl 5.8.6 designed for Linux Red Hat,
the program fails with:
Can't load '../bin/auto/msparser/msparser.so' for module msparser:
../bin/auto/msparser/msparser.so: ELF file OS ABI invalid at
/usr/local/ActivePerl-5.8/lib/5.8.6/i686-linux-thread-multi/DynaLoader.pm
line 230.
Have anyone any idea what happened?
Thanks
Valerio Daelli
Strace last lines of output:
_______________________________________________________________
access("/lib/ld-linux.so.2", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/lib/ld-linux.so.2", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/lib/compat/ld-linux.so.2", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/local/lib/ld-linux.so.2", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/X11R6/lib/ld-linux.so.2", F_OK) = -1 ENOENT (No such file or
directory)
access("/compat/linux/lib/ld-linux.so.2", F_OK) = 0
mprotect(0x282bb000, 1286144, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap(0, 27880, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28638000
munmap(0x28638000, 27880) = 0
mprotect(0x282bb000, 1286144, PROT_READ|PROT_EXEC) = 0
mmap(0, 2528, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28638000
munmap(0x28638000, 2528) = 0
mmap(0, 2984, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28638000
munmap(0x28638000, 2984) = 0
mmap(0, 17504, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28638000
munmap(0x28638000, 17504) = 0
mmap(0, 496, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28638000
munmap(0x28638000, 496) = 0
sigprocmask(SIG_SETMASK, [], NULL) = 0
--- SIGBUS (Bus error) ---
--- SIGBUS (Bus error) ---
More information about the freebsd-questions
mailing list