Скомпилируйте и используйте glibc-2.13 из исходного кода для архитектуры Ubuntu x86_64 - PullRequest
0 голосов
/ 30 октября 2011

Я пытаюсь создать модифицированную версию libc / NPTL. Моя версия Ubuntu показывает, что это версия 2.13. Я хочу создать отдельную libc / nptl / libpthreads и хочу использовать ее для существующего приложения (например, apache), использующего динамическую загрузку без замены существующих glibc / libpthreads. Я новичок в программировании ядра и динамической загрузки. Можете ли вы привести пример использования libc / NPTL с возможностью динамической загрузки.

1 Ответ

3 голосов
/ 31 октября 2011

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

Я новичок в программировании ядра

Ваш вопрос имеет ничего вообщеделать с программированием ядра.

...