2012-12-02 11 views
10

Ich baute die neueste Glibc und jetzt habe ich einige Probleme mit Funktionen in Coreutils wie ls oder cat oder irgendetwas anderes wie vim.__vdso_time fehlt in Core-Utils?

Mein Fehler ist

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

und ich gebaut, glibc ohne Fehler mit der Konfiguration folgende

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

Bei älteren Versionen, wie 2,14, die Dienstprogramme führt zu einem Segmentation Fault ausgeführt wird.

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

bearbeiten Kernel Version

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

Welche Kernel-Version sind Sie? Welche Verteilung? Und warum musst du Glibc von Hand bauen? –

+0

@NikolaiNFetisov Der Anmeldeknoten ist Fedora 12, auf dem der Kernel 2.6 läuft. – Mikhail

Antwort

14

mehrere Versionen von glibc auf einem einzigen System zu haben, ist möglich, aber etwas tricky, wie in this Antwort erklärt. Insbesondere folgt aus:

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

ist erwartet zum Absturz zu bringen, weil Ihr ld-linux-x86-64.so.2 nicht Ihre libc.so.6 übereinstimmen

Katze: Fehler beim Laden von Shared Libraries: __vdso_time: ungültiger Modus für dlopen(): ...

Es ist nicht klar, wie Sie diese cat gebaut haben, aber es ist wahrscheinlich das exakt gleiche Problem: Sie wählen einige Bibliotheken aus /lib64, und einige aus /home/ex/uid377/glibc/lib. Tu das nicht. Sie müssen verknüpfen Sie alle Programme, die /home/ex/uid377/glibc/lib/libc.so.6 mit -Wl,--dynamic-linker=/home/ex/uid377/glibc/lib/ld-linux-x86-64.so.2 verwenden werden.

Sie können verfolgen, welche Bibliotheken werden zur Zeit durch Ausführen geladen:

env LD_DEBUG=files,libs ./cat