我正在尝试构建libc/NPTL的修改版本。我的ubuntu版本显示它是2.13版本。我想创建一个单独的libc/nptl/lipthreads,并希望将其用于使用动态加载的现有应用程序(如apache(,而不替换现有的glibc/lipthreads。我是内核编程和动态加载的新手。您能提供一个如何使用动态加载功能的libc/NPTL的例子吗。
我想创建一个单独的libc/nptl/lipthreads
这很简单:./configure --prefix=/u && make && make install
。祝贺您,您现在在/u
下有了一个单独的libc/lipthreads
并希望将其用于现有的应用程序(如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脚本调用,那么您必须对应用程序进行二进制修补:用/u/lib64/ld-2.13.so
替换二进制文件的.dynstr
部分中的/lib64/ld-linux-x86-64.so.2
字符串(新字符串必须不长于旧字符串(。
我是内核编程的新手
您的问题与内核编程无关。