Я хочу создать отдельную 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
(новая строка должна быть не длиннее старой).
Я новичок в программировании ядра
Ваш вопрос имеет ничего вообщеделать с программированием ядра.