2009-05-02 3 views
5

Ich versuche, Perl 5.10 auf meinen FreeBSD 7.1 (BSD) Server zu kompilieren, aber wenn ich den Configure-Skript ausführen und die Fragen beantworten, ich die folgende Fehlermeldung erhalten:Wie kompiliere ich Perl 5.10 mit Thread-Unterstützung unter FreeBSD 7.1?

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

für die Antwort googeln kam mit der Installation gethostnamadr.c, die bis auf zwei Dinge in Ordnung ist:

  1. ich weiß nicht, wo diese Datei zu setzen und
  2. Wie funktioniert dies mein Problem lösen, wenn Configure libc_r sehen will?

Antwort

4

enthalten ist, um Perl 5.10 Threads auf FreeBSD zu ermöglichen 7. * Sie müssen nur den folgenden Patch mit patch anwenden. Sie können dann Perl mit -Dusthreads erstellen oder die Datei beantworten, um Threading zu ermöglichen, und Sie können loslegen. Ich habe noch keine signifikanten Tests oder Vergleiche durchgeführt, aber alles kompiliert gut einschließlich der Thread-Bibliotheken und alle meine Perl-Programme funktionieren gut.

--- 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: Ich habe meine Referenz vergessen; Überprüfen Sie hier für weitere Informationen: http://www.gossamer-threads.com/lists/perl/porters/232518?nohighlight=1#232518.

+0

Scheint wie ein Fehler in Perls frebsds Hints-Datei. Hast du das upstream zu p5p eingereicht? – mpeters

+0

Ich habe es nicht eingereicht, weil es nicht meine Lösung ist. Ich bin mir ziemlich sicher, dass sowohl Perl- als auch BSD-Leute davon wissen, weil es einige Hinweise darauf gibt, dass es für 7.2 behoben wird. – gvkv

2

Im Gegensatz zu Spolsky, der sagte "Perl ist ziemlich vergessen" ... Perl ist sehr lebendig.

Sie haben nicht angegeben, welche Version von FreeBSD Sie installiert haben ... Aber vorausgesetzt, Sie haben mindestens FreeBSD 7.1 installiert, dann konnten Sie die Thread-Bibliotheken nicht installieren oder die Thread-Bibliotheken befinden sich nicht im Bibliothekspfad.

HINWEIS, dass libc eine allgemeine "c" -Bibliothek ist und dass libc_r die Thread-sichere Version dieser Datei ist. Einige der Google-Ergebnisse von 2005 deuten darauf hin, dass libc_r veraltet ist.

In diesem Sinne ist es wahrscheinlich, dass Sie in der Mitte einer "Revisionskollision" sind. Leider bietet FreeBSD nicht die threadsichere Version von Perl, sondern Paket 5.10 und einige spätere Versionen. Ich fand diesen Link nützlich sein:

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

Sie könnten auch versuchen wollen, die p5-fork Bibliothek zu installieren, die mit FreeBSD

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

+0

Ich sah Ihre Antwort, nachdem ich meine eigene Antwort geschrieben hatte. Danke für die Links. Ich habe auch meine Frage aktualisiert, um die BSD Versionsnummer wiederzugeben. – gvkv

Verwandte Themen