2012-12-02 27 views
10

最新のglibcをビルドしましたが、今度はlscatなどのコアチュールの機能や、vimなどの機能に問題があります。コアのutilsに__vdso_timeがありませんか?

私のエラーが

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

であると私はエラーなし、glibcのを建てセグメンテーションフォールトでのユーティリティの結果を実行している、2.14のように、古いバージョンでは

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

を設定するには、次の。

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

編集 カーネルバージョン単一のシステム上のglibcの複数のバージョンを持つ

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

あなたがオンになっていますか?どのような分布ですか?そして、なぜ手でglibcを構築する必要がありますか? –

+0

@NikolaiNFetissovログインノードは、2.6カーネルを実行しているFedora 12です。 – Mikhail

答えて

14

this答えで説明したように、可能性が、わずかトリッキーです。具体的には、この:

LD_LIBRARY_PATH = /ホーム/ EX/uid377/glibcの/ libに/:あなたのld-linux-x86-64.so.2は、あなたのlibc.so.6と一致しないので、$ {LD_LIBRARY_PATH}

は、クラッシュするを期待されています

猫:エラー共有ライブラリをロード中:__vdso_time:dlopenのための無効なモード():...

これはどのように作成されたのかはっきりしませんが、おそらくまったく同じ問題です:/lib64からいくつかのライブラリを選び、/home/ex/uid377/glibc/libからいくつかのライブラリを選びます。それをしないでください。 は、と-Wl,--dynamic-linker=/home/ex/uid377/glibc/lib/ld-linux-x86-64.so.2を使用するすべてのプログラムをリンクする必要があります。

あなたはどのライブラリが現在実行中でロードされているトレースすることができます:どのようなカーネルバージョン

env LD_DEBUG=files,libs ./cat 
関連する問題