HOWTO Переход на NPTL
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
Содержание |
[править] Что такое NPTL?
Native POSIX Thread Library (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 этой веткой форума даст вам необходимую информацию. Убедитесь что у вас есть официальная документация по установке, так как это всего лишь ее небольшая часть. Дальнейшая установка не зависит от выбора библиотеки потоков.
[править] Переход на NPTL
Также возможно перейти на NPTL и после установки. Вам будет необходимо установить linux26-headers и удалить linux-headers,если вы их все еще используете. Для всего нижеперечисленного необходимо ядро ветки 2.6. Подразумевается,что система и нужное ядро уже установлены.Начнем:
Добавьте USE-флаги nptl и nptlonly в /etc/make.conf Затем:
emerge unmerge linux-headers
emerge --oneshot linux26-headers
emerge glibc
| Примечание: Выше приведённое описание перехода не работает на 2005.1 и выше, так как там уже не существует linux26-headers. |
- Добавьте USE-флаги nptl и nptlonly в /etc/make.conf
emerge linux-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 будут работать не корректно.
[править] Замечания
[править] Дополнительная информация
В соответствии с данным постом - вам не обязательно нужно использовать 2.6 ядро чтобы собрать glibc с поддержкой NPTL. Конечно с ядром 2.4 вы не сможете по-настоящему использовать NPTL, для этого необходимо ядро с портированной поддержкой NPTL.
Это обсуждение также интересно.
[править] Часто встречающиеся ошибки
Если установка 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 скомпилирована не будет.
Dron А у меня на i586 скомпилилась, что я сделал не так? :-)
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-флагами.
| Примечание: Причем никогда не забывайте убирать из флаги -fPIC и другие похожие, иначе не собирается |
