在opensuse Linux 11.4中,符号errno,版本GLIBC_2.0未定义
作者:互联网
我有一个第三方32位可执行文件,我需要在OpenSuSE Linux 11.4上运行.
当我运行它时,我收到此错误:
filename:重定位错误:文件名:符号errno,版本GLIBC_2.0未在文件libc.so.6中定义,带有链接时间参考.
在/ lib目录中,libc.so.6作为符号链接,指向libc-2.11.3.so.当我对此进行objdump和grep for errno时,我得到了这个:
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
我没有可执行文件的源代码.有没有办法我可以自己添加一个补丁到glibc源,并在我的机器上本地解决这个问题?
如果可能,那么补丁是什么?
可执行文件是lmgrd的第三方版本,即启动其许可证服务器的实用程序.
Executable的ldd输出如下所示:
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)
提前致谢.
解决方法:
relocation error: filename: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference.
The executable is third-party’s version of lmgrd, the utility that starts their license server.
该可执行文件必须已在古老的机器上链接.这是一个很好的explanation问题.
Is there a way I can add a patch myself to the source of glibc and fix this problem locally on my machine alone?
是的,但是你真的不应该这样做(它是(a)复杂的,并且(b)你可以轻松地使你的系统无法启动,如果你搞砸了你的glibc).
联系第三方供应商并告诉他们由于lmgrd损坏您无法使用他们的产品.请你退钱.你可能会感到惊讶他们可能会试图解决这个问题.
标签:opensuse,linux,glibc 来源: https://codeday.me/bug/20190831/1772240.html