HOWTO Переход на NPTL
Материал из Википедии - свободной энциклопедии.
- Вернутся в раздел руководства
Содержание |
Что такое NPTL?
Native POSIX Thread Library (http://people.redhat.com/drepper/nptl-design.pdf) (NPTL) - это библиотека потоков POSIX, которая, в отличии от предыдущих попыток, находится в ядре на очень высоком уровне. Это позволяет достигнуть максимальной производительности при минимальном затрате ресурсов. NPTL разрабатывалась как замена устаревшей библиотеке linuxthread. Главное преимущество NPTL перед linuxthreads для пользователей в том, что она быстрее (подробнее в PDF-документе). Для программистов она лучше тем, что стала более posix-совместима.
Использование NPTL
Если вы хотите использовать NPTL с самого начала (то есть с момента установки системы), то вам необходимо запустить скрипт
- bootstrap-2.6.sh. Wiki-статья HOWTO Gentoo 2004.2 for linux 2.6 and NPTL совместно с этим HOWTO и c этой веткой форума (http://forums.gentoo.org/viewtopic.php?t=169054) даст вам необходимую информацию. Убедитесь что у вас есть официальная документация по установке, так как это всего лишь ее небольшая часть. Дальнейшая установка не зависит от выбора библиотеки потоков.
Переход на NPTL
Также возможно перейти на NPTL и после установки. Вам будет необходимо установить linux26-headers и удалить linux-headers,если вы их все еще используете. Для всего нижеперечисленного необходимо ядро ветки 2.6. Подразумевается,что система и нужное ядро уже установлены.Начнем:
Добавьте USE-флаги nptl и nptlonly в /etc/make.conf Затем:
- emerge unmerge linux-headers
- emerge --oneshot linux26-headers
- emerge glibc
После перезагрузки у вас будет NPTL. Проверить наличие NPTL можно командой
- /lib/libc.so.6
или
- /lib/tls/libc.so.6
Вот что приблизительно должно отобразиться:
Code: Вывод Libc.so.6 |
GNU C Library 20041102 release version 2.3.4, by Roland McGrath et al. Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 3.4.3 20041125 (Gentoo Linux 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7). Compiled on a Linux 2.6.8 system on 2004-12-21. Available extensions: GNU libio by Per Bothner crypt add-on version 2.1 by Michael Glad and others Native POSIX Threads Library by Ulrich Drepper et al The C stubs add-on version 2.1.2. GNU Libidn by Simon Josefsson BIND-8.2.3-T5B NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Thread-local storage support included. For bug reporting instructions, please see: <http://www.gnu.org/software/libc/bugs.html>. |
- Примечание
- Вам также может потребоваться переустановка nvidia-glx если XMMS или MPlayer будут работать не корректно.
Замечания
Дополнительная информация
В соответствии с данным постом (http://tim.littlebluefrog.com/archives/000083.html) - вам не обязательно нужно использовать 2.6 ядро чтобы собрать glibc с поддержкой NPTL. Конечно с ядром 2.4 вы не сможете по-настоящему использовать NPTL, для этого необходимо ядро с портированной поддержкой NPTL.
Это обсуждение (http://www.mail-archive.com/gentoo-dev@gentoo.org/msg02463.html) также интересно.
Часто встречающиеся ошибки
Если установка libc прерывается с ошибкой the virtual/os-headers package conflicts with with another package. both can't be installed on the same system together (это указывает на sys-kernel/linux-headers и linux26-headers-*), то вы забыли удалить пакет linux-headers
Также убедитесь что переменная CHOST из /etc/make.conf равна i686. В противном случае поддержка NPTL скомпилирована не будет.
А у меня на i586 скомпилилась, что я сделал не так?. :--Dron 12:39, 16 Фев 2005 (GMT) Начиная с i586 будет собираться
FAQ
- Смогу я удалить NPTL и переустановить glibc без нее?
- Да. Нет никаких обратных эффектов после удаления NPTL.
- Она будет работать с GCC 3.4?
- Да. NPTL полностью совместима с GCC 3.4.
- Какие еще пакеты кроме glibc используют NPTL?
- Ximian OpenOffice, Wine и Mono в настоящее время используют ее. Я надеюсь, что вы выполните
- emerge --newuse world после переключения на NPTL для переустановки пакетов с обновленными USE-флагами.