我构建了最新的glibc,现在我在核心应用(如ls或cat )或其他类似vim的函数方面遇到了一些问题。
我的错误是
-bash-4.0$ cat
cat: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument我构建了,glibc,使用以下配置没有错误
../glibc/configure --prefix=/home/ex/uid377/glibbuilt在较早的版本(如2.14 )上,运行实用程序会导致分段错误。
-bash-4.0$ ./pwd
./pwd: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./pwd)
-bash-4.0$ LD_LIBRARY_PATH=/home/ex/uid377/glibc/lib/:${LD_LIBRARY_PATH}
-bash-4.0$ ./pwd
Segmentation fault (core dumped)编辑内核版本
-bash-4.0$ uname -r
2.6.32.26-175.fc12.x86_64发布于 2012-12-02 23:31:33
在一个系统上有多个版本的glibc是可能的,但是有点棘手,正如this的答案所解释的那样。特别是:
LD_LIBRARY_PATH=/home/ex/uid377/glibc/lib/:${LD_LIBRARY_PATH}
预期会崩溃,因为您的ld-linux-x86-64.so.2将与libc.so.6不匹配。
cat:加载共享库时出错:__vdso_time: dlopen():.
还不清楚您是如何构建这个cat的,但它很可能是同一个问题:您从/lib64中选择了一些库,从/home/ex/uid377/glibc/lib中选择了一些库。别干那事。您必须将使用/home/ex/uid377/glibc/lib/libc.so.6的所有程序与-Wl,--dynamic-linker=/home/ex/uid377/glibc/lib/ld-linux-x86-64.so.2链接起来。
您可以通过运行以下命令来跟踪当前正在加载哪些库:
env LD_DEBUG=files,libs ./cathttps://stackoverflow.com/questions/13668457
复制相似问题