Domanda

Sto cercando di compilare Perl 5.10 sul mio server FreeBSD 7.1 (BSD) ma quando eseguo lo script Configure e rispondo alle domande ottengo il seguente errore:

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

Google cercava la risposta con l'installazione di gethostnamadr.c che va bene tranne due cose:

  1. Non so dove mettere questo file e
  2. In che modo questo risolve il mio problema se Configure vuole vedere libc_r?
È stato utile?

Soluzione

Per abilitare i thread Perl 5.10 su FreeBSD 7. * Tutto quello che devi fare è applicare la seguente patch usando patch . Puoi quindi creare perl con -Dusethreads o rispondere alle domande sul file Configura per abilitare il threading e sei a posto. Non ho ancora effettuato test o confronti significativi, ma tutto viene compilato correttamente, compresi i thread di thread e tutti i miei programmi Perl funzionano correttamente.

--- 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: ho dimenticato il mio riferimento; controlla qui per maggiori informazioni: http: // www. gossamer-threads.com/lists/perl/porters/232518?nohighlight=1#232518 .

Altri suggerimenti

Contrariamente a Spolsky che ha detto che "perl è praticamente dimenticato" ... perl è molto vivo.

Non hai indicato quale versione di FreeBSD hai installato ... Ma supponendo che tu abbia installato un minimo di FreeBSD 7.1, non hai installato le librerie dei thread o le librerie dei thread non si trovano nel percorso della libreria.

NOTA che libc è una libreria 'c' generale e che libc_r è la versione thread-safe di quel file. Alcuni dei risultati di Google del 2005 suggeriscono che libc_r è stato deprecato.

Con questo in mente è probabile che tu sia nel mezzo di una "collisione di revisione". Purtroppo FreeBSD non fornisce la versione thread-safe di perl in modo nativo, tuttavia fa un pacchetto perl 5.10 e diverse revisioni successive. Ho trovato utile questo link:

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

potresti anche provare a installare la libreria p5-fork inclusa in FreeBSD

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top