GCC Compiler in einer anderen Version, als die gesetzte Standardversion nutzen

Um ein Paket mit einer anderen Version des GCC bzw. gcc++ zu bauen als es die Distribution als Standard vorsieht sind folgende Einträge in die spec einzufügen:


Beispiel openSUSE Leap 15.3

Hier ist die Version 7 als Standard gesetzt.
Es liegen aber auch die Versionen 8,9,10 und 11 des GCC vor.

Somit kann z.B. folgendes in die spec eingefügt werden wenn der GCC10 in Leap außer Tumbleweed benutzt werden soll:


Im Kopf:


%if 0%{?suse_version} < 1600
BuildRequires: gcc10
BuildRequires: gcc10-c++
%endif

Und in der %build section:


%if 0%{?suse_version} < 1600
export CC="%{_bindir}/gcc-10"
export CXX="%{_bindir}/g++-10"
%endif

Nun wird das Paket nicht mit GCC in der Version 7 gebaut, sondern mit GCC in der Version 10.

 

Besser ist jedoch folgende Version.

Im Kopf:

%if 0%{?suse_version} < 1600
BuildRequires: gcc13
BuildRequires: gcc13-c++
%else
BuildRequires: gcc
BuildRequires: gcc-c++
%endif

In der %build section:

%if 0%{?suse_version} < 1600
export CC=gcc-13
export CXX=g++-13
%endif