I'm trying to run a very old program that is already pre-compiled for i386 and was having no success running it on my x86_64 system, even with ia32-libs. I installed Oracle VirtualBox and installed the following image on it:
http://old-releases.ubuntu.com/relea...sktop-i386.iso
The package requires libc/libm version 5 which I was unable to find in any Ubuntu version.
I found a CentOS RPM package for libc-5.3.12-31.i386 and used Alien to convert this to .deb format. I then installed this, created a conf file in /etc/ld.so.conf.d to add the installed path into my library path, ran ldconfig an verified that the entry was operating. Running ldd shows the libraries are found
ldd /usr/bin/blast/blastp:
linux-gate.so.1 => (0x00c29000)
libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x00bab000)
libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x0089b000)
uname -m:
i686
uname -a:
Linux virtbox 2.6.32-57-generic #119-Ubuntu SMP Wed Feb 19 01:04:55 UTC 2014 i686 GNU/Linux
file /usr/bin/blast/blastp:
/usr/bin/blast/blastp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
ls -la /usr/bin/blast/blastp:
-rwxr-xr-x 1 root root 436096 1998-02-05 09:59 /usr/bin/blast/blastp
(same permissions for directories /usr/bin and /usr/bin/blast)
/usr/bin/blast/blastp:
bash: /usr/bin/blast/blastp: No such file or directory
ld /usr/i486-linux-libc5/lib/libm.so.5:
ld: warning: cannot find entry symbol _start; not setting start address
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isnanl'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isnan'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `errno'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isinf'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `___brk_addr'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__environ'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__getfpucw'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `atexit'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isinfl'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__errno_location'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `raise'
Is there a mismatch between the i686 kernel and the 386 executable? the 486 libc? What else do I need to do? Is there a different Ubuntu or Debian system I should be using as my base?
http://old-releases.ubuntu.com/relea...sktop-i386.iso
The package requires libc/libm version 5 which I was unable to find in any Ubuntu version.
I found a CentOS RPM package for libc-5.3.12-31.i386 and used Alien to convert this to .deb format. I then installed this, created a conf file in /etc/ld.so.conf.d to add the installed path into my library path, ran ldconfig an verified that the entry was operating. Running ldd shows the libraries are found
ldd /usr/bin/blast/blastp:
linux-gate.so.1 => (0x00c29000)
libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x00bab000)
libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x0089b000)
uname -m:
i686
uname -a:
Linux virtbox 2.6.32-57-generic #119-Ubuntu SMP Wed Feb 19 01:04:55 UTC 2014 i686 GNU/Linux
file /usr/bin/blast/blastp:
/usr/bin/blast/blastp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
ls -la /usr/bin/blast/blastp:
-rwxr-xr-x 1 root root 436096 1998-02-05 09:59 /usr/bin/blast/blastp
(same permissions for directories /usr/bin and /usr/bin/blast)
/usr/bin/blast/blastp:
bash: /usr/bin/blast/blastp: No such file or directory
ld /usr/i486-linux-libc5/lib/libm.so.5:
ld: warning: cannot find entry symbol _start; not setting start address
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isnanl'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isnan'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `errno'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isinf'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `___brk_addr'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__environ'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__getfpucw'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `atexit'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__isinfl'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `__errno_location'
/usr/i486-linux-libc5/lib/libm.so.5: undefined reference to `raise'
Is there a mismatch between the i686 kernel and the 386 executable? the 486 libc? What else do I need to do? Is there a different Ubuntu or Debian system I should be using as my base?