I have a third-party 32-bit executable that I need to run on OpenSuSE Linux 11.4. When i run it, I get this error:
filename: relocation error: filename: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference.
in /lib directory, libc.so.6 as a symbolic link, points to libc-2.11.3.so. When I do an objdump of this and grep for errno, i get this:
00000008 g D .tbss 00000004 GLIBC_PRIVATE errno
000171c0 g DF .text 0000001d GLIBC_2.0 __errno_location
000f96e0 g DF .text 0000007d GLIBC_2.0 clnt_sperrno
000f98a0 g DF .text 0000003d GLIBC_2.0 clnt_perrno
00000034 g D .tbss 00000004 GLIBC_PRIVATE h_errno
000ec860 g DF .text 0000001d GLIBC_2.0 __h_errno_location
I don't have the source code of the executable. Is there a way I can add a patch myself to the source of glibc and fix this problem locally on my machine alone?
If that is possible, then, what is the patch?
The executable is third-party's version of lmgrd, the utility that starts their license server.
Executable's ldd output looks like this:
linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf76a5000)
libc.so.6 => /lib/libc.so.6 (0xf753c000)
/lib/ld-linux.so.2 (0xf76f6000)
Thanks in advance.