0

libc/NPTL の修正版をビルドしようとしています。私のubuntuバージョンは、バージョン2.13であることを示しています。別の libc/nptl/libpthreads を作成し、既存の glibc/libpthreads を置き換えることなく、動的読み込みを使用して既存のアプリケーション (Apache など) に使用したいと考えています。カーネル プログラミングと動的読み込みは初めてです。動的読み込み機能を使用して libc/NPTL を使用する方法の例を教えてください。

4

1 に答える 1

3

別の libc/nptl/libpthreads を作成したい

それは簡単です: ./configure --prefix=/u && make && make install. おめでとう、あなたは今別libc/lipthreadsの下にあります/u

既存のアプリケーション(Apacheなど)に使用したい

libc新しいものを既存の (ビルド済みの) バイナリで使用するのか、それとも再構築できるバイナリで使用するのかは明確ではありません。

-Wl,--dynamic-linker=/u/lib64/ld-linux-x86-64.so.2後者の場合は、 (64 ビット バイナリの場合) を追加するだけで完了です。

前者で、アプリケーション自体がない場合は次のexecveように呼び出すことができます/u/lib64/ld-linux-x86-64.so.2 /path/to/app

アプリケーションが自動的に実行される場合exec、または変更したくない多数のシェル スクリプトによって呼び出される場合は、アプリケーションにバイナリ パッチを適用する必要があります。バイナリ/lib64/ld-linux-x86-64.so.2.dynstrセクションの文字列を/u/lib64/ld-2.13.so(新しい文字列にする必要があります古いものよりも長くはありません)。

カーネルプログラミングは初めてです

あなたの質問は、カーネル プログラミングとは何の関係もありません。

于 2011-10-31T03:45:25.953 に答える