Custom-gcc: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
<b>custom-gcc</b><i><version></i> - вариант пакета <i>gcc<version></i>, который может быть использован в ветвях Sisyphus, основная версия <i>gcc</i> которых не соответствует требованиям, которые предъявляются пакетом, собираемым в данную ветвь, т.е. <i>custom-gcc</i> имеет большую версию чем самый новый <i>gcc</i> данной ветви.
<b>custom-gcc</b><i><version></i> - вариант пакета <i>gcc<version></i>, который может быть использован в ветвях Sisyphus, основная версия <i>gcc</i> которых не соответствует требованиям, которые предъявляются пакетом, собираемым в данную ветвь, т.е. <i>custom-gcc</i> имеет большую версию чем самый новый <i>gcc</i> данной ветви.


Примеры сборки пакетов при помощи <i>custom-gcc</i>:
== Требуемые изменения spec-файла собираемого пакета ==
*[http://git.altlinux.org/gears/f/firefox.git?p=firefox.git;a=commitdiff;h=973763579f6c1e167b55e7b7ead51b309e0b3eeb Без использования custom-libgcc1 и custom-libstdc++6 (используются системные libgcc1 и libstdc++6);]
 
*[http://git.altlinux.org/gears/c/ceph.git?p=ceph.git;a=commitdiff;h=743eadb6f0cf6bd29a7f6ceb2e020ce369818d3f С использованием custom-libgcc1 и custom-libstdc++6.]
# Удалить все упоминания <i>gcc*</i> (<i>gcc</i>, <i>gcc-c++</i> и пр.);
# Добавить в описание зависимостей следующие строки (номер версии может отличаться, в примере используется версия 5 - здесь и далее):<source>
BuildRequires: custom-gcc5-c++
%define psuffix -5
%define __cc %_bindir/gcc%psuffix
%define __cxx %_bindir/g++%psuffix
</source>
# При необходимости сборки пакета с новыми версиями стандартных библиотек, следует указать на них зависимости:<source>
Requires: custom-libgcc1 >= 5
Requires: custom-libstdc++6 >= 5
</source>
# Добавить в секцию <i>%build</i> указание используемых компиляторов:<source>
export CC="%__cc"
export CXX="%__cxx"
</source>
# При необходимости сборки пакета с новыми версиями стандартных библиотек, следует указать путь к каталогу, в котором они все расположены (%_libdir/custom-gcc/):<source>
export LDFLAGS="-Wl,-rpath,%_libdir/custom-gcc/"
</source>


[[Категория:Packaging]]
[[Категория:Packaging]]

Версия от 14:12, 22 ноября 2018

custom-gcc<version> - вариант пакета gcc<version>, который может быть использован в ветвях Sisyphus, основная версия gcc которых не соответствует требованиям, которые предъявляются пакетом, собираемым в данную ветвь, т.е. custom-gcc имеет большую версию чем самый новый gcc данной ветви.

Требуемые изменения spec-файла собираемого пакета

  1. Удалить все упоминания gcc* (gcc, gcc-c++ и пр.);
  2. Добавить в описание зависимостей следующие строки (номер версии может отличаться, в примере используется версия 5 - здесь и далее):
    BuildRequires: custom-gcc5-c++
    %define psuffix -5
    %define __cc %_bindir/gcc%psuffix
    %define __cxx %_bindir/g++%psuffix
  3. При необходимости сборки пакета с новыми версиями стандартных библиотек, следует указать на них зависимости:
    Requires: custom-libgcc1 >= 5
    Requires: custom-libstdc++6 >= 5
  4. Добавить в секцию %build указание используемых компиляторов:
    export CC="%__cc"
    export CXX="%__cxx"
  5. При необходимости сборки пакета с новыми версиями стандартных библиотек, следует указать путь к каталогу, в котором они все расположены (%_libdir/custom-gcc/):
    export LDFLAGS="-Wl,-rpath,%_libdir/custom-gcc/"