SpecTips/ToolChain

Материал из ALT Linux Wiki
< SpecTips
Версия от 14:39, 6 декабря 2019; MichaelShigorin (обсуждение | вклад) (мелкая викификация с https://stackoverflow.com/questions/20897400/passing-an-equal-sign-to-a-parameter-in-a-mediawiki-template вдобавок)

Переключение версий toolchain

Для некоторых пакетов бывает осмысленно использовать сборку иными версиями базового инструментария, нежели текущие (например, когда известно, что новый gcc неправильно собирает последний доступный memtest86+).

Переключение возможно осуществить следующими макросами:

%set_autoconf_version
%set_automake_version
%set_libtool_version
%set_gcc_version

В качестве аргумента они принимают версию, в точности соответствующую суффиксу в имени /usr/bin/утилита-версия; обратите внимание, что для случая autoconf_2.50 это 2.5, а не 2.50 (содержит /usr/bin/autoconf-2.5 и /usr/bin/autoconf_2.50).

Пример использования в спеке (например, где-нибудь ниже BuildRequires — кстати, указывать специфические версии пакетов в них не надо, они будут добавлены автоматически):

%set_automake_version 1.7
%set_autoconf_version 2.5

Обратите внимание: при надобности g++ следует добавить явную сборочную зависимость:

%set_gcc_version 8
BuildRequires: gcc8-c++

Также может потребоваться export CC=%__cc и, вероятно, export CXX=%__cxx до вызова configure.