HOWTO NPTL
De Gentoo Linux Wiki
| Kernel & Hardware • Red y Servicios • Portage • Relacionado con el Sistema • Servidor X • Juegos • Misceláneos |
Tabla de contenidos |
[editar] ¿Qué es NPTL?
Native POSIX Thread Library (NPTL) es una librería de hilos (threads) que, al contrario que otras alternativas anteriores, es una fina capa sobre el kernel. Esto permite obtener un rendimiento máximo por un mínimo precio. NPTL es un sustituto para la antigua librería linuxthreads que además de la citada mejora de rendimiento provee a los programadores del beneficio de que es más posix compliant como el propio nombre indica.
[editar] Usando NPTL
Si quieres usar NPTL desde el mismo momento en el que instales Gentoo, desde la versión 2005.0 no tienes que hacer nada especial salvo agregar la USE nptl a tu make.conf, en cambio si usas una versión anterior necesitarás usar bootstrap-2.6.sh al hacer el bootstrap, pero antes tendrás que realizar unos pasos previos. Te avisaremos cuando llegue el momento.
[editar] Migrando a NPTL
También es posible migrar a NPTL después de instalar. Para esto necesitaremos emerger linux-headers, a fecha de hoy, 5 de Abril del 2005 tienes que usar la versión masked, que es la de la rama 2.6 (Esto es porque antes se usaba linux26-headers, pero ahora la rama 2.6 es estable en Gentoo). También tendrás que migrar a un kernel 2.6 si todavía no lo has hecho. Asumiendo que ya tienes el kernel listo (Si no es así echalé un ojo a HOWTO Compilar el kernel manualmente), los pasos a seguir son:
- Agregar la varieble USE nptl a tu make.conf
- Emerger los paquetes necesarios:
# emerge --oneshot linux-headers
- Reemerger glibc: Nota: Este es el momento de hacer el bootstrap para aquellos que están instalando una versión de Gentoo anterior a la 2005.0.
# emerge glibc
Después de reiniciar, tendreis vuestro sistema con NPTL completamente operativo. Podeis comprobar el modo de hilos que está usando vuestro sistema tecleando:
# /lib/libc.so.6
o
# /lib/tls/libc.so.6
La salida debería ser algo así:
# 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>.
- Nota
- Es posible que necesites reemerger algunos paquetes como nvidia-glx, XMMS o MPlayer si obtienes un segfault. Si XMMS se queja de una inconsistencia en ld.so, reemerge flac
[editar] Notas
[editar] Información adicional
De acuerdo con este post no necesitas correr un kernel 2.6 para compilar glibc con NPTL pero si lo necesitarás para usarlo.
Este post también es interesante.
[editar] Errores típicos
Si al emerge glibc recibes el error the virtual/os-headers package conflicts with with another package. both can't be installed on the same system together es que se te ha olvidado desemerger 'linux-headers'.
Asegurate de que tu CHOST en el fichero /etc/make.conf es i686; si es i386, no podrás usar nptl.
[editar] FAQ
- ¿Puedo quitar NPTL y reemerger glibc sin él?
Sí, no hay ningún problema.
- ¿Debo agregar la USE nptlonly?
De momento no es recomendable ya que algunos programas no funcionan bien si sólo tienes nptl.
- ¿Cuáles son los paquetes que más aprovechan NPTL?
Ximian OpenOffice, Wine y Mono. Es recomendable ejecutar
# emerge --newuse world
después de migrar a NPTL para actualizar los paquetes a los que afecta esta USE.
[editar] Créditos
Traducido de la versión original en Inglés por Franco Gotusso
