_核心工具中缺少__vdso_time?

我建立了最新的glibc,现在我在coreutils中像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

解决方法

在单个系统上具有多个版本的glibc是可能的,但稍微棘手一些,如 this答案中所述.特别是这个:

LD_LIBRARY_PATH=/home/ex/uid377/glibc/lib/:${LD_LIBRARY_PATH}

预计会崩溃,因为您的ld-linux-x86-64.so.2将不匹配您的libc.so.6

cat: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): …

不清楚你如何构建这只猫,但最有可能是完全相同的问题:您正在从/ 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 ./cat

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...