__vdso_time missing from core utils?
c, gcc, glibc, linker, linux
Solution
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
Problem
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 ```