cómo deshabilitar programas de prueba en compilación cruzada simplista

cómo deshabilitar programas de prueba en compilación cruzada simplista

Tengo los siguientes errores al intentar realizar una compilación cruzada de simplismo, con los siguientes parámetros de configuración:

./configure --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

¿Hay alguna manera de deshabilitar estas pruebas para que mi proceso de compilación cruzada pueda realizarse?

Respuesta1

La práctica estándar en este tipo de situación es utilizar unArchivo predeterminado del sitio Autoconfque contiene los valores apropiados para las pruebas que configuredesea ejecutar.

En este caso particular,configureestá tratando de determinar en qué dirección crece la pila:

    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; }

Por lo tanto, compilaría ese código de forma cruzada, lo ejecutaría en su plataforma de destino y examinaría su código de salida ( echo $?). Cree un archivo predeterminado del sitio para su arquitectura de destino, por ejemplo config.arm-hisiv400-linux, y agregue una línea con

glib_cv_stack_grows=yes

(si el código de salida anterior era 0), o

glib_cv_stack_grows=no

(si el código de salida era 1).

Luego ejecute configureapuntando CONFIG_SITEa la ruta completa del archivo predeterminado del sitio que acaba de crear:

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

configuredebe usar el valor del archivo predeterminado del sitio, omitiendo la prueba de la pila. Probablemente fallará en la próxima prueba que necesite ejecutar un programa compilado para el objetivo, pero puede solucionarlo de la misma manera, agregando más entradas al archivo predeterminado del sitio (siempre que configure.acuse AC_CACHE_VALalrededor de AC_TRY_RUN).

información relacionada