2009-05-02 38 views
5

Tôi đang cố gắng để biên dịch Perl 5.10 trên 7,1 máy chủ FreeBSD (BSD) của tôi, nhưng khi tôi chạy kịch bản Cấu hình và trả lời các câu hỏi tôi nhận được lỗi sau:Làm cách nào để biên dịch Perl 5.10 với hỗ trợ luồng trong FreeBSD 7.1?

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

Googling cho câu trả lời đã đưa ra lắp đặt gethostnamadr.c đó là tốt, ngoại trừ hai điều:

  1. tôi không biết nơi để đặt tập tin này và
  2. làm thế nào để giải quyết vấn đề này của tôi nếu Configure muốn nhìn thấy libc_r?

Trả lời

4

Để kích hoạt Perl 5.10 bài trên FreeBSD 7. * tất cả những gì bạn phải làm là áp dụng bản vá sau bằng cách sử dụng patch. Sau đó bạn có thể xây dựng perl với -Dusethreads hoặc trả lời các câu hỏi về tập tin Configure để cho phép luồng và bạn sẵn sàng sử dụng. Tôi đã không thực hiện bất kỳ thử nghiệm đáng kể hoặc so sánh nào được nêu ra nhưng tất cả mọi thứ biên dịch tốt bao gồm cả libs thread và tất cả các chương trình Perl của tôi làm việc tốt.

--- 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: Tôi quên tham chiếu của mình; kiểm tra tại đây để biết thêm thông tin: http://www.gossamer-threads.com/lists/perl/porters/232518?nohighlight=1#232518.

+0

Có vẻ như một lỗi trong tập tin gợi ý freebsd của Perl. Bạn đã gửi ngược dòng này lên p5p chưa? – mpeters

+0

Tôi chưa gửi nó vì nó không phải là giải pháp của tôi. Tôi khá chắc chắn rằng cả hai người Perl và BSD đều biết về nó bởi vì có một số gợi ý rằng nó sẽ được sửa cho 7.2. – gvkv

2

Trái ngược với Spolsky, người đã nói "perl bị lãng quên nhiều" ... perl rất sống động.

Bạn chưa chỉ định phiên bản FreeBSD nào bạn đã cài đặt ... Nhưng giả sử bạn đã cài đặt một phút FreeBSD 7.1 thì bạn không thể cài đặt thư viện chủ đề hoặc thư mục luồng không nằm trong đường dẫn thư viện.

LƯU Ý rằng libc là thư viện 'c' chung và libc_r là phiên bản an toàn chỉ của tệp đó. Một số kết quả năm 2005 của Google cho thấy rằng libc_r đã không còn được dùng nữa.

Với ý nghĩ đó, có khả năng bạn đang ở giữa "xung đột sửa đổi". Đáng buồn là FreeBSD không cung cấp phiên bản an toàn chủ đề của perl natively, tuy nhiên, họ làm gói perl 5.10 và một số bản sửa đổi sau này. Tôi thấy liên kết này có ích:

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

bạn cũng có thể muốn thử cài đặt thư viện p5-nĩa được bao gồm với FreeBSD

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

+0

Tôi đã thấy câu trả lời của bạn sau khi tôi đăng câu trả lời của riêng mình. Cảm ơn các liên kết mặc dù. Tôi cũng đã cập nhật câu hỏi của mình để phản ánh số phiên bản BSD. – gvkv

Các vấn đề liên quan