как отключить тестовые программы при кросс-компиляции glib

, возможно, вы захотите использовать -3 параметр scp, он направляет трафик через ваш ноутбук.

т.е. [ПОЛЬЗОВАТЕЛЬ @ НОУТБУК ~] scp -3 root @ SERVER1: / PATH / TO / DIR root @ SERVER2: / PATH / TO / DIR

7
02.11.2016, 09:06
1 ответ

Стандартной практикой в ​​такой ситуации является использование файла по умолчанию для сайта Autoconf , содержащего соответствующие значения для тестов, которые configure хочет запустить.

В этом конкретном случае configure пытается определить, в каком направлении растет стек:

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

Таким образом, вы должны кросскомпилировать этот код, запустить его на своей целевой платформе и изучить его выход код ( echo $? ). Создайте файл сайта по умолчанию для вашей целевой архитектуры, например config.arm-hisiv400-linux , и добавьте строку с

glib_cv_stack_grows=yes

(если код выхода выше был 0) или

glib_cv_stack_grows=no

(если код выхода был 1).

Затем запустите configure , указав CONFIG_SITE , указывающий на полный путь к только что созданному файлу сайта по умолчанию:

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

configure должен использовать значение из файла сайта по умолчанию. , пропуская тест для стека. Вероятно, он не сработает при следующем тесте, в котором необходимо запустить программу, скомпилированную для цели, но вы можете исправить это таким же образом, добавив дополнительные записи в файл сайта по умолчанию (при условии, что configure.ac использует AC_CACHE_VAL около AC_TRY_RUN ).

2
27.01.2020, 20:20

Теги

Похожие вопросы