SpecTips/ToolChain: различия между версиями
м (init) |
м (мелкая викификация с https://stackoverflow.com/questions/20897400/passing-an-equal-sign-to-a-parameter-in-a-mediawiki-template вдобавок) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 2: | Строка 2: | ||
== Переключение версий toolchain == | == Переключение версий toolchain == | ||
Для некоторых пакетов бывает осмысленно использовать сборку иными версиями базового инструментария, нежели текущие (например, когда известно, что | Для некоторых пакетов бывает осмысленно использовать сборку иными версиями базового инструментария, нежели текущие (например, когда известно, что новый {{pkg|gcc}} неправильно собирает последний доступный {{pkg|memtest86+}}). | ||
Переключение возможно осуществить следующими макросами: | Переключение возможно осуществить следующими макросами: | ||
Строка 17: | Строка 17: | ||
%set_automake_version 1.7 | %set_automake_version 1.7 | ||
%set_autoconf_version 2.5 | %set_autoconf_version 2.5 | ||
Обратите внимание: при надобности {{cmd|g++}} [https://lists.altlinux.org/pipermail/devel/2019-November/209183.html следует] добавить явную сборочную зависимость: | |||
%set_gcc_version 8 | |||
BuildRequires: gcc8-c++ | |||
Также может [https://lists.altlinux.org/pipermail/devel/2019-March/207344.html потребоваться] {{cmd|export CC=%__cc}} и, вероятно, {{cmd|export CXX=%__cxx}} до вызова {{cmd|configure}}. |
Текущая версия от 11:39, 6 декабря 2019
Переключение версий 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.