__vdso_time missing from core utils?

10,352

Having multiple versions of glibc on a single system is possible, but slightly tricky, as explained in this answer. In particular, this:

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

is expected to crash, because your ld-linux-x86-64.so.2 will not match your libc.so.6

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

It's not clear how you built this cat, but it's most likely the exact same problem: you are picking some libraries from /lib64, and some from /home/ex/uid377/glibc/lib. Don't do that. You must link all the programs that will use /home/ex/uid377/glibc/lib/libc.so.6 with -Wl,--dynamic-linker=/home/ex/uid377/glibc/lib/ld-linux-x86-64.so.2.

You can trace which libraries are currently being loaded by running:

env LD_DEBUG=files,libs ./cat
Share:
10,352
Mikhail
Author by

Mikhail

Label-free imaging and inverse optics applied to high-content screening and assisted reproductive technologies. Experience developing new imaging platforms and software tools for biomedical applications, with a focus on interferometric contrast enhancement and high-throughput instrumentation. You can find me in the Lounge<C++> chat room. I keep most of my stuff on gitlab. 6月4日天安门广场大屠杀 美国的没有GFW,美国的surveillance跟国内根本不是一个级别的。在SO上你可以批评美国政府批评美国总统,没有人会删帖,也没有人来查你水表。

Updated on June 05, 2022

Comments

  • Mikhail
    Mikhail almost 2 years

    I built the latest glibc and now i'm having some trouble with functions in coreutils like ls or cat or anything else like vim.

    My error is

    -bash-4.0$ cat
    cat: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
    

    and I built, glibc without errors with the following configure

    ../glibc/configure --prefix=/home/ex/uid377/glibbuilt
    

    On older versions, like 2.14, running the utilities results in a segmentation fault.

    -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)
    

    Edit Kernel Version

    -bash-4.0$ uname -r
    2.6.32.26-175.fc12.x86_64