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