2011-01-12 44 views
5

Tôi đang cố thiết lập một cụm xây dựng nhỏ ở nhà bằng distcc. Có hai hệ thống x64 và 1 hệ thống i686. Tất cả các hệ thống đang chạy Ubuntu 10.10 và được cập nhật. Hệ thống đang khởi tạo bản dựng là x64. Distcc hoạt động tốt giữa hai hệ thống x64 nhưng tất cả các tác vụ xây dựng được gửi đến hệ thống i686 đều thất bại.Cross biên dịch x86_64 trên hệ thống i686 trên Ubuntu với distcc

Cho đến nay:

  • Tôi đã cài đặt các gói multilib cho g ++ trên hệ thống đó. Tôi có thể biên dịch chéo sang x64 cục bộ bằng cách sử dụng g++ -m64
  • Đã thay đổi liên kết trong /usr/lib/distcc/g++ để trỏ đến tập lệnh mà thiết lập thông số -m64.

Mọi đề xuất?

+0

Các triệu chứng cụ thể của sự cố là gì? –

+0

Các hệ thống khá chung chung - máy đang khởi tạo báo cáo rằng máy 32 có lỗi nên nó đã cố gắng xây dựng cục bộ. Mỗi khi nó được xây dựng tại địa phương nó làm việc, do đó, máy 32 bit cuối cùng đã được đưa vào "danh sách đen" cho một chút. –

Trả lời

5

Hãy thử lại thao tác này sau khi nghiên cứu thêm:

GCC có page describing the i386 and x86-64 options. Cờ -m64 nói để tạo mã 64 bit, nhưng bạn cũng sẽ muốn chỉ định loại CPU với -march=i686 hoặc -march=k8 hoặc tương tự, để sử dụng tập lệnh chính xác.

Vì distcc gửi cờ dòng lệnh GCC, bạn nên thử thêm các lệnh này vào lệnh distcc chạy cục bộ và bỏ qua tập lệnh từ xa để thiết lập cờ.

Nếu bạn kiểm tra cờ kiến ​​trúc trên máy x64 cục bộ của mình mà không bị phân phối, chỉ cần g ++, thì nó sẽ cung cấp cho bạn các mã nhị phân phù hợp khi sử dụng distcc.

+0

Tôi chắc chắn đã sử dụng '-m64' để tải phiên bản 64 bit trên x86 gần đây. –

+0

Arghhh ... thật đơn giản. Để làm cho nó hoạt động tôi chỉ cần thiết lập (trên máy x64 đã được khởi tạo xây dựng) CFLAGS và CXXFLAGS đến -m64. Cảm ơn! –

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