-# TODO: finish D (needs bootstrap from non-TLD gdc binaries)
-#
# NOTE
# - when adding new subpackages with external libraries (like libffi)
# or having own Version, do not use epoch 6 there, reset them to 0!
# - languages:
%bcond_without ada # ADA language support
%bcond_without cxx # C++ language support
-%bcond_with d # D language support [NFY, buildrequires gdc]
+%bcond_without d # D language support
%bcond_without fortran # Fortran language support
%bcond_without go # Go language support
%bcond_without modula2 # Modula2 language support
# Stable is: any major_ver and minor_ver >= 1.0
# For TLD we usually use gcc when minor_ver >= 2.0 (first bugfix release or later)
-%define major_ver 14
+%define major_ver 15
%define minor_ver 2.0
Summary: GNU Compiler Collection: the C compiler and shared files
Summary(pt_BR.UTF-8): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
Name: gcc
Version: %{major_ver}.%{minor_ver}
-Release: 2
+Release: 1
Epoch: 6
License: GPL v3+
Group: Development/Languages
Source0: https://gcc.gnu.org/pub/gcc/releases/%{name}-%{version}/%{name}-%{version}.tar.xz
-# Source0-md5: 2268420ba02dc01821960e274711bde0
+# Source0-md5: b861b092bf1af683c46a8aa2e689a6fd
Source1: %{name}-optimize-la.pl
# check libffi version with libffi/configure.ac
Source3: libffi.pc.in
Source4: branch.sh
# use branch.sh to update gcc-branch.diff
Patch100: %{name}-branch.diff
-# Patch100-md5: 17e646e88e3d285211be1c3bdfeb42e9
+# Patch100-md5: c981de54e8a25c40d5bef99684e74292
Patch0: %{name}-info.patch
-Patch1: all-library-paths.patch
+
Patch2: %{name}-nodebug.patch
Patch3: %{name}-ada-link.patch
Patch4: %{name}-ada-x32.patch
BuildRequires: libgnat-static
%endif
%if %{with d}
-BuildRequires: gcc-d
+BuildRequires: gcc-d >= 6:11
+BuildRequires: libgphobos-static
%endif
BuildRequires: gdb
BuildRequires: gettext-tools >= 0.14.5
Group: Libraries
# >= instead of = to allow keeping older libstdc++ (with different soname)
Requires: libgcc >= %{epoch}:%{version}-%{release}
-Obsoletes: libg++
+Obsoletes: libg++ < 2.95
Obsoletes: libstdc++3 < 5:3.1
Obsoletes: libstdc++4 < 5:3.2
Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
Requires: glibc-devel
Requires: libstdc++ = %{epoch}:%{version}-%{release}
-Obsoletes: libg++-devel
+Obsoletes: libg++-devel < 2.95
Obsoletes: libstdc++3-devel < 5:3.1
Obsoletes: libstdc++4-devel < 5:3.2
%description -n libstdc++-apidocs -l pl.UTF-8
Dokumentacja API i wewnętrzna biblioteki standardowej C++.
+%package d
+Summary: D language support for GCC
+Summary(pl.UTF-8): Obsługa języka D dla GCC
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgphobos = %{epoch}:%{version}-%{release}
+
+%description d
+This package adds support for compiling D programs with the GNU
+compiler.
+
+%description d -l pl.UTF-8
+Ten pakiet dodaje obsługę języka D do kompilatora GCC.
+
+%package d-multilib-32
+Summary: D language 32-bit binaries support for GCC
+Summary(pl.UTF-8): Obsługa binariów 32-bitowych w języku D dla GCC
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgphobos-multilib-32 = %{epoch}:%{version}-%{release}
+
+%description d-multilib-32
+This package adds support for compiling 32-bit D programs with the GNU
+compiler.
+
+%description d-multilib-32 -l pl.UTF-8
+Ten pakiet dodaje obsługę 32-bitowych programów w języku D do
+kompilatora GCC.
+
+%package d-multilib-%{multilib2}
+Summary: D language %{m2_desc} binaries support for GCC
+Summary(pl.UTF-8): Obsługa binariów %{m2_desc} w języku D dla GCC
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgphobos-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description d-multilib-%{multilib2}
+This package adds support for compiling D programs to %{m2_desc}
+binaries with the GNU compiler.
+
+%description d-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet dodaje obsługę binariów %{m2_desc} w języku D do
+kompilatora GCC.
+
+%package -n libgphobos
+Summary: D language runtime libraries
+Summary(pl.UTF-8): Biblioteki uruchomieniowe dla języka D
+License: Boost v1.0
+Group: Libraries
+
+%description -n libgphobos
+D language runtime libraries.
+
+%description -n libgphobos -l pl.UTF-8
+Biblioteki uruchomieniowe dla języka D.
+
+%package -n libgphobos-static
+Summary: Static D language runtime libraries
+Summary(pl.UTF-8): Statyczne biblioteki uruchomieniowe dla języka D
+License: Boost v1.0
+Group: Development/Libraries
+Requires: %{name}-d = %{epoch}:%{version}-%{release}
+
+%description -n libgphobos-static
+Static D language runtime libraries.
+
+%description -n libgphobos-static -l pl.UTF-8
+Statyczne biblioteki uruchomieniowe dla języka D.
+
+%package -n libgphobos-multilib-32
+Summary: D language runtime libraries - 32-bit version
+Summary(pl.UTF-8): Biblioteki uruchomieniowe dla języka D - wersja 32-bitowa
+License: Boost v1.0
+Group: Libraries
+
+%description -n libgphobos-multilib-32
+D language runtime libraries - 32-bit version.
+
+%description -n libgphobos-multilib-32 -l pl.UTF-8
+Biblioteki uruchomieniowe dla języka D - wersja 32-bitowa.
+
+%package -n libgphobos-multilib-32-static
+Summary: Static D language runtime libraries - 32-bit version
+Summary(pl.UTF-8): Statyczne biblioteki uruchomieniowe dla języka D - wersja 32-bitowa
+Group: Development/Libraries
+License: Boost v1.0
+Requires: %{name}-d-multilib-32 = %{epoch}:%{version}-%{release}
+
+%description -n libgphobos-multilib-32-static
+Static D language runtime libraries - 32-bit version.
+
+%description -n libgphobos-multilib-32-static -l pl.UTF-8
+Statyczne biblioteki uruchomieniowe dla języka D - wersja 32-bitowa.
+
+%package -n libgphobos-multilib-%{multilib2}
+Summary: D language runtime libraries - %{m2_desc} version
+Summary(pl.UTF-8): Biblioteki uruchomieniowe dla języka D - wersja %{m2_desc}
+License: Boost v1.0
+Group: Libraries
+
+%description -n libgphobos-multilib-%{multilib2}
+D language runtime libraries - %{m2_desc} version.
+
+%description -n libgphobos-multilib-%{multilib2} -l pl.UTF-8
+Biblioteki uruchomieniowe dla języka D - wersja 32-bitowa.
+
+%package -n libgphobos-multilib-%{multilib2}-static
+Summary: Static D language runtime libraries - %{m2_desc} version
+Summary(pl.UTF-8): Statyczne biblioteki uruchomieniowe dla języka D - wersja %{m2_desc}
+Group: Development/Libraries
+License: Boost v1.0
+Requires: %{name}-d-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libgphobos-multilib-%{multilib2}-static
+Static D language runtime libraries - %{m2_desc} version.
+
+%description -n libgphobos-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczne biblioteki uruchomieniowe dla języka D - wersja %{m2_desc}.
+
%package fortran
Summary: Fortran 95 language support for GCC
Summary(es.UTF-8): Soporte de Fortran 95 para GCC
%prep
%setup -q
-%patch100 -p1
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-
-%patch10 -p1
+%patch -P100 -p1
+%patch -P0 -p1
+
+%patch -P2 -p1
+%patch -P3 -p1
+%patch -P4 -p1
+
+%patch -P10 -p1
%if %{with gcc_libffi}
-%patch11 -p0
+%patch -P11 -p0
%endif
%{__mv} ChangeLog ChangeLog.general
%postun ada -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
+%post d -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun d -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
%post fortran -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
%postun go -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
+%post m2 -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun m2 -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
%post -n libquadmath-devel -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
%postun -p /sbin/ldconfig -n libstdc++-multilib-32
%post -p /sbin/ldconfig -n libstdc++-multilib-%{multilib2}
%postun -p /sbin/ldconfig -n libstdc++-multilib-%{multilib2}
+%post -p /sbin/ldconfig -n libgphobos
+%postun -p /sbin/ldconfig -n libgphobos
%post -p /sbin/ldconfig -n libgfortran
%postun -p /sbin/ldconfig -n libgfortran
%post -p /sbin/ldconfig -n libgfortran-multilib-32
%ifarch %{ix86} %{x8664} x32
%{gcclibdir}/include/adxintrin.h
%{gcclibdir}/include/ammintrin.h
+%{gcclibdir}/include/amxavx512intrin.h
%{gcclibdir}/include/amxbf16intrin.h
%{gcclibdir}/include/amxcomplexintrin.h
%{gcclibdir}/include/amxfp16intrin.h
+%{gcclibdir}/include/amxfp8intrin.h
%{gcclibdir}/include/amxint8intrin.h
+%{gcclibdir}/include/amxmovrsintrin.h
+%{gcclibdir}/include/amxtf32intrin.h
%{gcclibdir}/include/amxtileintrin.h
+%{gcclibdir}/include/amxtransposeintrin.h
+%{gcclibdir}/include/avx10_2-512bf16intrin.h
+%{gcclibdir}/include/avx10_2-512convertintrin.h
+%{gcclibdir}/include/avx10_2-512mediaintrin.h
+%{gcclibdir}/include/avx10_2-512minmaxintrin.h
+%{gcclibdir}/include/avx10_2-512satcvtintrin.h
+%{gcclibdir}/include/avx10_2bf16intrin.h
+%{gcclibdir}/include/avx10_2convertintrin.h
+%{gcclibdir}/include/avx10_2copyintrin.h
+%{gcclibdir}/include/avx10_2mediaintrin.h
+%{gcclibdir}/include/avx10_2minmaxintrin.h
+%{gcclibdir}/include/avx10_2satcvtintrin.h
%{gcclibdir}/include/avx2intrin.h
-%{gcclibdir}/include/avx5124fmapsintrin.h
-%{gcclibdir}/include/avx5124vnniwintrin.h
%{gcclibdir}/include/avx512bf16intrin.h
%{gcclibdir}/include/avx512bf16vlintrin.h
%{gcclibdir}/include/avx512bitalgintrin.h
%{gcclibdir}/include/avx512bwintrin.h
%{gcclibdir}/include/avx512cdintrin.h
%{gcclibdir}/include/avx512dqintrin.h
-%{gcclibdir}/include/avx512erintrin.h
%{gcclibdir}/include/avx512fintrin.h
%{gcclibdir}/include/avx512fp16intrin.h
%{gcclibdir}/include/avx512fp16vlintrin.h
%{gcclibdir}/include/avx512ifmaintrin.h
%{gcclibdir}/include/avx512ifmavlintrin.h
-%{gcclibdir}/include/avx512pfintrin.h
%{gcclibdir}/include/avx512vbmi2intrin.h
%{gcclibdir}/include/avx512vbmi2vlintrin.h
%{gcclibdir}/include/avx512vbmiintrin.h
%{gcclibdir}/include/cldemoteintrin.h
%{gcclibdir}/include/clflushoptintrin.h
%{gcclibdir}/include/clwbintrin.h
+%{gcclibdir}/include/movrsintrin.h
%{gcclibdir}/include/clzerointrin.h
%{gcclibdir}/include/cmpccxaddintrin.h
%{gcclibdir}/include/cpuid.h
%files -n libstdc++-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libstdc++.so
+%{_libdir}/libstdc++.modules.json
%{_libdir}/libstdc++.la
%{_libdir}/libstdc++exp.a
%{_libdir}/libstdc++exp.la
%endif
%endif
+%if %{with d}
+%files d
+%defattr(644,root,root,755)
+%doc gcc/d/{ChangeLog,README.gcc}
+%attr(755,root,root) %{_bindir}/gdc
+%attr(755,root,root) %{_bindir}/*-gdc
+%attr(755,root,root) %{gcclibdir}/d21
+%attr(755,root,root) %{_libdir}/libgdruntime.so
+%attr(755,root,root) %{_libdir}/libgphobos.so
+%{_libdir}/libgdruntime.la
+%{_libdir}/libgphobos.la
+%{_libdir}/libgphobos.spec
+%{gcclibdir}/include/d
+%{_mandir}/man1/gdc.1*
+%{_infodir}/gdc.info*
+
+%if %{with multilib}
+%files d-multilib-32
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgdruntime.so
+%attr(755,root,root) %{_libdir32}/libgphobos.so
+%{_libdir32}/libgdruntime.la
+%{_libdir32}/libgphobos.la
+%{_libdir32}/libgphobos.spec
+%endif
+
+%if %{with multilib2}
+%files d-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgdruntime.so
+%attr(755,root,root) %{_libdirm2}/libgphobos.so
+%{_libdirm2}/libgdruntime.la
+%{_libdirm2}/libgphobos.la
+%{_libdirm2}/libgphobos.spec
+%endif
+
+%files -n libgphobos
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgdruntime.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgdruntime.so.6
+%attr(755,root,root) %{_libdir}/libgphobos.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgphobos.so.6
+
+%files -n libgphobos-static
+%defattr(644,root,root,755)
+%{_libdir}/libgdruntime.a
+%{_libdir}/libgphobos.a
+
+%if %{with multilib}
+%files -n libgphobos-multilib-32
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgdruntime.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgdruntime.so.6
+%attr(755,root,root) %{_libdir32}/libgphobos.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgphobos.so.6
+
+%files -n libgphobos-multilib-32-static
+%defattr(644,root,root,755)
+%{_libdir32}/libgdruntime.a
+%{_libdir32}/libgphobos.a
+%endif
+
+%if %{with multilib2}
+%files -n libgphobos-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgdruntime.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libgdruntime.so.6
+%attr(755,root,root) %{_libdirm2}/libgphobos.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libgphobos.so.6
+
+%files -n libgphobos-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libgdruntime.a
+%{_libdirm2}/libgphobos.a
+%endif
+%endif
+
%if %{with fortran}
%files fortran
%defattr(644,root,root,755)
%{_libdir}/libm2pim.la
%{gcclibdir}/m2
%{_mandir}/man1/gm2.1*
+%{_infodir}/m2.info*
%if %{with multilib}
%files m2-multilib-32
%files -n libgm2
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libm2cor.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libm2cor.so.19
+%attr(755,root,root) %ghost %{_libdir}/libm2cor.so.20
%attr(755,root,root) %{_libdir}/libm2iso.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libm2iso.so.19
+%attr(755,root,root) %ghost %{_libdir}/libm2iso.so.20
%attr(755,root,root) %{_libdir}/libm2log.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libm2log.so.19
+%attr(755,root,root) %ghost %{_libdir}/libm2log.so.20
%attr(755,root,root) %{_libdir}/libm2min.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libm2min.so.19
+%attr(755,root,root) %ghost %{_libdir}/libm2min.so.20
%attr(755,root,root) %{_libdir}/libm2pim.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libm2pim.so.19
+%attr(755,root,root) %ghost %{_libdir}/libm2pim.so.20
%files -n libgm2-static
%defattr(644,root,root,755)
%files -n libgm2-multilib-32
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libm2cor.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libm2cor.so.19
+%attr(755,root,root) %ghost %{_libdir32}/libm2cor.so.20
%attr(755,root,root) %{_libdir32}/libm2iso.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libm2iso.so.19
+%attr(755,root,root) %ghost %{_libdir32}/libm2iso.so.20
%attr(755,root,root) %{_libdir32}/libm2log.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libm2log.so.19
+%attr(755,root,root) %ghost %{_libdir32}/libm2log.so.20
%attr(755,root,root) %{_libdir32}/libm2min.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libm2min.so.19
+%attr(755,root,root) %ghost %{_libdir32}/libm2min.so.20
%attr(755,root,root) %{_libdir32}/libm2pim.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libm2pim.so.19
+%attr(755,root,root) %ghost %{_libdir32}/libm2pim.so.20
%files -n libgm2-multilib-32-static
%defattr(644,root,root,755)
%files -n libgm2-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libm2cor.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libm2cor.so.19
+%attr(755,root,root) %ghost %{_libdirm2}/libm2cor.so.20
%attr(755,root,root) %{_libdirm2}/libm2iso.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libm2iso.so.19
+%attr(755,root,root) %ghost %{_libdirm2}/libm2iso.so.20
%attr(755,root,root) %{_libdirm2}/libm2log.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libm2log.so.19
+%attr(755,root,root) %ghost %{_libdirm2}/libm2log.so.20
%attr(755,root,root) %{_libdirm2}/libm2min.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libm2min.so.19
+%attr(755,root,root) %ghost %{_libdirm2}/libm2min.so.20
%attr(755,root,root) %{_libdirm2}/libm2pim.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libm2pim.so.19
+%attr(755,root,root) %ghost %{_libdirm2}/libm2pim.so.20
%files -n libgm2-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%doc libgo/{LICENSE,PATENTS,README}
%attr(755,root,root) %{_libdir}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgo.so.23
+%attr(755,root,root) %ghost %{_libdir}/libgo.so.24
%files -n libgo-devel
%defattr(644,root,root,755)
%files -n libgo-multilib-32
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libgo.so.23
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.24
%files -n libgo-multilib-32-devel
%defattr(644,root,root,755)
%files -n libgo-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libgo.so.23
+%attr(755,root,root) %ghost %{_libdirm2}/libgo.so.24
%files -n libgo-multilib-%{multilib2}-devel
%defattr(644,root,root,755)