Linux compatibility GLIBC_2.2.5

Hi,

I am trying to use a library which is compiled for Linux.

I activated the Linux Compatibility and made several things work, but now I'm stuck with this message when actually using the library:

Code:
/usr/lib/librt.so.1: version GLIBC_2.2.5 required by (...)

I am not very familiar with the Linux compatibility. Is there a way to get around this error?

I installed the following ports:
Code:
compat6x-amd64-6.4.604000.200810_3 Convenience package to install the compat6x libraries
linux_base-f10-10_7            Base set of packages needed in Linux mode for i386/amd64 (Linux Fedora 10)

Thanks for hints.
 
The problem with the current Linux emulation is that it's getting rather old. You need a newer version to be able to run that application. You may want to try emulators/linux_base-c6 instead but I'm not sure if it works correctly or if it's even new enough for your application.
 
Hm, I set 2.6.18 via sysctl, installed the port. In this case I will play around a little more. Thanks.

EDIT: Nope, can't get it to work. Reboot doesn't help.
 
Hi,
Have you run ldd on the binary program file requiring librt.so.1? The output should tell you which shared libraries are installed & compatible. The handbook offered some pretty detailed info for running Linux binaries. In my case,
Code:
$ ldd /usr/local/bin/some_directory/a_linux_program | more
...
        libpthread.so.0 => /lib/libpthread.so.0 (0x2b03f000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x2b551000)
        librt.so.1 => /lib/librt.so.1 (0x2b5e9000)
...
$ ls -la /compat/linux/lib/librt*                      
-rwxr-xr-x  1 root  wheel  39676 Nov 21  2013 /compat/linux/lib/librt-2.12.so
lrwxr-xr-x  1 root  wheel     13 Nov 21  2013 /compat/linux/lib/librt.so.1 -> librt-2.12.so
$ pkg which /compat/linux/lib/librt-2.12.so
/compat/linux/lib/librt-2.12.so was installed by package linux_base-c6-6.5
$ strings /compat/linux/lib/librt-2.12.so | grep 'GLIBC'
GLIBC_2.1
GLIBC_2.2
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.7
GLIBC_PRIVATE
GLIBC_2.0
GLIBC_2.1.3
GLIBC_2.3.2

There were some shared libs that came along with the tarball of the Linux program I run. Those that emulators/linux_base-c6-6.5 did not install, I copied manually into /compat/linux/lib/.

Also, as (at least) one post on this forum notes, Linux programs run in their own shell. That turned out to be the final piece of the puzzle for me.
Code:
$ more ~/a_linux_program
#!/compat/linux/bin/sh
/usr/local/bin/some-directory/a_linux_program;
exit 0;

If the shared library must specifically list GLIBC_2.2.5, then I've got to imagine there's one out there somewhere..
Hope you get that program to run.. Good luck!
 
Running ldd on the library I only get this:

Code:
ldd: res_fax_digium.so: not a FreeBSD ELF shared object
 
Back
Top