SpecTips/ToolChain: различия между версиями

Материал из ALT Linux Wiki
м (init)
 
м (/usr/bin/autoconf-2.60)
 
(не показаны 4 промежуточные версии 2 участников)
Строка 2: Строка 2:
== Переключение версий toolchain ==
== Переключение версий toolchain ==


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


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


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


Пример использования в спеке (например, где-нибудь ниже BuildRequires — кстати, указывать специфические версии пакетов в них ''не'' надо, они будут добавлены  автоматически):
Пример использования в спеке (например, где-нибудь ниже BuildRequires — кстати, указывать специфические версии пакетов в них ''не'' надо, они будут добавлены  автоматически):
Строка 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&#61;%__cc}} и, вероятно, {{cmd|export CXX&#61;%__cxx}} до вызова {{cmd|configure}}.

Текущая версия от 08:09, 31 мая 2024

Переключение версий 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), но для 2.60 -- именно 2.60.

Пример использования в спеке (например, где-нибудь ниже 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.