Làm thế nào để vô hiệu hóa các chương trình thử nghiệm trong biên dịch chéo


7

Tôi đã gặp các lỗi sau khi cố gắng biên dịch chéo, với các tham số cấu hình sau:

./có hình --prefix = $ HOME --host = arm-hisiv400-linux

checking for growing stack pointer... configure: error: in `/home/aa/Hi3536_SDK_V2.0.4.0/glib-2.50.0':
configure: error: cannot run test program while cross compiling
See `config.log' for more details

Có cách nào để vô hiệu hóa các thử nghiệm này để quá trình biên dịch chéo của tôi có thể vượt qua không?


Tôi đoán ./configure --helpcó thể giúp.
schaiba

Không, nó không có vì nó không có kiểm tra vô hiệu hóa được liệt kê là một trong các tùy chọn.
thebunnyrules

Câu trả lời:


1

Thực tiễn tiêu chuẩn trong loại tình huống này là sử dụng tệp mặc định của trang Autoconf chứa các giá trị phù hợp cho các bài kiểm tra configuremuốn chạy.

Trong trường hợp cụ thể này, configuređang cố gắng xác định hướng phát triển của ngăn xếp:

    volatile int *a = 0, *b = 0;
    void f (int i) { volatile int x = 5; if (i == 0) b = &x; else f (i - 1); }
    int main () { volatile int y = 7; a = &y; f (100); return b > a ? 0 : 1; }

Vì vậy, bạn sẽ biên dịch chéo mã đó, chạy nó trên nền tảng đích của bạn và kiểm tra mã thoát ( echo $?). Ví dụ config.arm-hisiv400-linux, tạo một tệp mặc định cho kiến ​​trúc đích của bạn và thêm một dòng với

glib_cv_stack_grows=yes

(nếu mã thoát ở trên là 0) hoặc

glib_cv_stack_grows=no

(nếu mã thoát là 1).

Sau đó chạy configurevới CONFIG_SITEchỉ vào đường dẫn đầy đủ của tệp mặc định của trang bạn vừa tạo:

CONFIG_SITE=/path/to/config.arm-hisiv400-linux ./configure --prefix=$HOME --host=arm-hisiv400-linux

configurenên sử dụng giá trị từ tệp mặc định của trang, bỏ qua kiểm tra cho ngăn xếp. Nó có thể sẽ thất bại trong bài kiểm tra tiếp theo cần chạy chương trình được biên dịch cho mục tiêu, nhưng bạn có thể sửa nó theo cách tương tự, thêm nhiều mục vào tệp mặc định của trang (miễn là configure.acsử dụng AC_CACHE_VALxung quanh AC_TRY_RUN).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.