2009-05-02 10 views
5

Estoy intentando compilar Perl 5.10 en mi servidor FreeBSD 7.1 (BSD), pero cuando ejecuto el script de configuración y contestar las preguntas que recibo el siguiente error:¿Cómo compilo Perl 5.10 con soporte de subprocesos bajo FreeBSD 7.1?

...POSTIX threads should be supported by FreeBSD 7.1 ... but your system is missing the shared libc_r. 

Google para la respuesta se le ocurrió instalar gethostnamadr.c lo cual está bien excepto por dos cosas:

  1. no sé dónde poner este archivo y
  2. ¿Cómo funciona esto solucionar mi problema si Configurar quiere ver libc_r?

Respuesta

4

Para habilitar Perl 5.10 roscas en FreeBSD 7. * todo lo que tiene que hacer es aplicar el siguiente parche usando patch. A continuación, puede crear perl con -Dusethreads o responder las preguntas del archivo Configure para permitir el enhebrado y está listo para comenzar. Todavía no he realizado ninguna prueba o comparación significativa, pero todo compila bien, incluidas las librerías de subprocesos y todos mis programas Perl funcionan bien.

--- hints/freebsd.sh 2008/10/20 04:59:30 1.1 
+++ hints/freebsd.sh 2008/10/20 22:49:29 
@@ -211,6 +211,14 @@ 
exit 1 
;; 

+ 7.*) 
+ # 7.x doesn't install libc_r by default, and Configure 
+ # would fail in the code following 
+ # 
+ # gethostbyaddr_r() appears to have been implemented in 6.x+ 
+ ldflags="-pthread $ldflags" 
+ ;; 
+ 
*) 
if [ ! -r "$lc_r" ]; then 
cat <<EOM >&4 

EDIT: Olvidé mi referencia; mira aquí para más información: http://www.gossamer-threads.com/lists/perl/porters/232518?nohighlight=1#232518.

+0

Parece un error en el archivo freebsd de Perl. ¿Has enviado esto de vuelta a p5p? – mpeters

+0

No lo he enviado porque no es mi solución. Estoy bastante seguro de que tanto Perl como BSD lo saben porque hubo algunos indicios de que se solucionará en 7.2. – gvkv

2

Contrariamente a Spolsky, quien dijo "perl es prácticamente olvidado" ... perl está muy vivo.

No ha indicado qué versión de FreeBSD ha instalado ... Pero suponiendo que ha instalado un mínimo de FreeBSD 7.1, no pudo instalar las bibliotecas de hilos o las librerías de hilos no están en la ruta de la biblioteca.

NOTA que libc es una biblioteca 'c' general y que libc_r es la versión segura para subprocesos de ese archivo. Algunos de los resultados de google de 2005 sugieren que libc_r ha quedado obsoleto.

Teniendo esto en cuenta, es probable que se encuentre en medio de una "colisión de revisión". Tristemente FreeBSD no proporciona la versión segura de perl de forma nativa, sin embargo, sí empaquetan perl 5.10 y varias revisiones posteriores. He encontrado este enlace para ser útil:

http://www.nabble.com/How---where-to-get-a-Perl-that-has-threads--td22270858.html

también puede ser que desee probar la instalación de la biblioteca p5-tenedor que se incluye con FreeBSD

http://www.nabble.com/How---where-to-get-a-Perl-that-has-threads--td22270858.html

+0

Vi su respuesta después de haber publicado mi propia respuesta. Gracias por los enlaces. También actualicé mi pregunta para reflejar el número de versión de BSD. – gvkv

Cuestiones relacionadas