2011-10-30 84 views
0

我正在嘗試構建libc/NPTL的修改版本。我的Ubuntu版本顯示它是2.13版本。我想創建一個單獨的libc/nptl/libpthreads,並希望將其用於現有應用程序(如apache),而不用替換現有的glibc/libpthreads。我是內核編程和動態加載的新手。您能否提供一個如何使用動態加載功能來使用libc/NPTL的例子。從源代碼編譯和使用glibc-2.13 x86_64體系結構

回答

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本身,或得到由shell腳本的許多您不想要修改調用的,那麼你就必須爲二進制補丁的應用:以二進制的.dynstr部分取代/lib64/ld-linux-x86-64.so.2串與/u/lib64/ld-2.13.so(新的字符串不得長於舊的字符串)。

我新的內核編程

你的問題有什麼任何做內核編程。

相關問題