# - when adding new subpackages with external libraries (like libffi)
# or having own Version, do not use epoch 6 there, reset them to 0!
#
-# TODO:
-# - revise obsoletes for new libmpx packages!
-#
# Conditional build:
# - languages:
%bcond_without ada # build without ADA support
%bcond_without python # build without libstdc++ printers for gdb
%bcond_with gcc_libffi # packaging gcc libffi for system usage
# - other:
+%bcond_without apidocs # do not package API docs
%bcond_without bootstrap # omit 3-stage bootstrap
%bcond_with tests # torture gcc
%bcond_with symvers # enable versioned symbols in libstdc++ (WARNING: changes soname from .so.6 to so.7)
%define with_atomic 1
%endif
%ifarch %{ix86} %{x8664}
-%define with_cilkrts 1
-%endif
-%ifarch %{ix86} %{x8664}
# sanitizer feature (asan and ubsan are common for all supported archs)
%define with_Xsan 1
%endif
# 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 7
-%define minor_ver 3.0
+%define major_ver 8
+%define minor_ver 2.0
Summary: GNU Compiler Collection: the C compiler and shared files
Summary(es.UTF-8): Colección de compiladores GNU: el compilador C y ficheros compartidos
Summary(pt_BR.UTF-8): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
Name: gcc
Version: %{major_ver}.%{minor_ver}
-Release: 4
+Release: 1
Epoch: 6
License: GPL v3+
Group: Development/Languages
Source0: https://ftp.gnu.org/pub/gnu/gcc/gcc-%{version}/%{name}-%{version}.tar.xz
-# Source0-md5: be2da21680f27624f3a87055c4ba5af2
+# Source0-md5: 4ab282f414676496483b3e1793d07862
Source1: %{name}-optimize-la.pl
# check libffi version with libffi/configure.ac
Source3: libffi.pc.in
Source4: branch.sh
-# use branch.sh to update glibc-branch.diff
+# use branch.sh to update gcc-branch.diff
Patch100: %{name}-branch.diff
-# Patch100-md5: 1e19dfcc43bffa292bf5f5b3bc80bc4e
+# Patch100-md5: 8bfa267661b31b6349ced81d2202b769
Patch0: %{name}-info.patch
Patch2: %{name}-nodebug.patch
Patch3: %{name}-ada-link.patch
BuildRequires: rpm-pythonprov
%endif
BuildRequires: rpmbuild(macros) >= 1.211
+BuildRequires: tar >= 1:1.22
BuildRequires: texinfo >= 4.7
+BuildRequires: xz
BuildRequires: zlib-devel
BuildConflicts: pdksh < 5.2.14-50
Requires: binutils >= 3:2.23
%description -n libgomp-multilib-static -l pl.UTF-8
Statyczna biblioteka GNU OpenMP - wersja 32-bitowa.
-%package -n libcilkrts
-Summary: GCC Cilk Plus language extensions runtime library
-Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Cilk Plus dla GCC
-License: BSD
-Group: Libraries
-Requires: libstdc++ = %{epoch}:%{version}-%{release}
-
-%description -n libcilkrts
-This package contains the Cilk Plus C/C++ language extensions runtime
-library.
-
-%description -n libcilkrts -l pl.UTF-8
-Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Cilk Plus dla
-języków C/C++.
-
-%package -n libcilkrts-devel
-Summary: GCC development files for Cilk Plus language extensions
-Summary(pl.UTF-8): Pliki programistyczne GCC dla rozszerzeń Cilk Plus
-License: BSD
-Group: Development/Libraries
-Requires: libcilkrts = %{epoch}:%{version}-%{release}
-
-%description -n libcilkrts-devel
-This package contains development files for Cilk Plus C/C++ language
-extensions.
-
-%description -n libcilkrts-devel -l pl.UTF-8
-Ten pakiet zawiera pliki programistyczne rozszerzeń Cilk Plus dla
-języków C/C++.
-
-%package -n libcilkrts-static
-Summary: GCC Cilk Plus language extensions static library
-Summary(pl.UTF-8): Biblioteka statyczna rozszerzeń Cilk Plus dla GCC
-License: BSD
-Group: Development/Libraries
-Requires: libcilkrts-devel = %{epoch}:%{version}-%{release}
-
-%description -n libcilkrts-static
-This package contains Cilk Plus C/C++ language extensions static
-library.
-
-%description -n libcilkrts-static -l pl.UTF-8
-Ten pakiet zawiera bibliotekę statyczną rozszerzeń Cilk Plus dla
-języków C/C++.
-
-%package -n libcilkrts-multilib
-Summary: GCC Cilk Plus language extensions runtime library - 32-bit version
-Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Cilk Plus dla GCC - wersja 32-bitowa
-License: BSD
-Group: Libraries
-Requires: libstdc++-multilib = %{epoch}:%{version}-%{release}
-
-%description -n libcilkrts-multilib
-This package contains the Cilk Plus C/C++ language extensions runtime
-library in 32-bit version.
-
-%description -n libcilkrts-multilib -l pl.UTF-8
-Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Cilk Plus dla
-języków C/C++. W tym pakiecie znajduje się wersja 32-bitowa.
-
-%package -n libcilkrts-multilib-devel
-Summary: GCC development files for Cilk Plus language extensions - 32-bit version
-Summary(pl.UTF-8): Pliki programistyczne GCC dla rozszerzeń Cilk Plus - wersja 32-bitowa
-License: BSD
-Group: Development/Libraries
-Requires: libcilkrts-devel = %{epoch}:%{version}-%{release}
-Requires: libcilkrts-multilib = %{epoch}:%{version}-%{release}
-
-%description -n libcilkrts-multilib-devel
-This package contains development files for Cilk Plus C/C++ language
-extensions in 32-bit version.
-
-%description -n libcilkrts-multilib-devel -l pl.UTF-8
-Ten pakiet zawiera pliki programistyczne rozszerzeń Cilk Plus dla
-języków C/C++. W tym pakiecie znajduje się wersja 32-bitowa.
-
-%package -n libcilkrts-multilib-static
-Summary: GCC Cilk Plus language extensions static library - 32-bit version
-Summary(pl.UTF-8): Biblioteka statyczna rozszerzeń Cilk Plus dla GCC - wersja 32-bitowa
-License: BSD
-Group: Development/Libraries
-Requires: libcilkrts-multilib-devel = %{epoch}:%{version}-%{release}
-
-%description -n libcilkrts-multilib-static
-This package contains the Cilk Plus C/C++ language extensions static
-library in 32-bit version.
-
-%description -n libcilkrts-multilib-static -l pl.UTF-8
-Ten pakiet zawiera bibliotekę statyczną rozszerzeń Cilk Plus dla
-języków C/C++. W tym pakiecie znajduje się wersja 32-bitowa.
-
%package ada
Summary: Ada language support for GCC
Summary(es.UTF-8): Soporte de Ada para GCC
Ten pakiet zawiera skrypty Pythona dla GDB służące do ładnego
wypisywania typów i kontenerów libstdc++.
+%package -n libstdc++-apidocs
+Summary: C++ standard library API documentation
+Summary(pl.UTF-8): Dokumentacja API biblioteki standardowej C++
+License: FDL v1.3 (mainly), GPL v3+ (doxygen generated parts)
+Group: Documentation
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
+
+%description -n libstdc++-apidocs
+API and internal documentation for C++ standard library.
+
+%description -n libstdc++-apidocs -l pl.UTF-8
+Dokumentacja API i wewnętrzna biblioteki standardowej C++.
+
%package fortran
Summary: Fortran 95 language support for GCC
Summary(es.UTF-8): Soporte de Fortran 95 para GCC
%postun -n libgomp-devel -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
-%post -p /sbin/ldconfig -n libcilkrts
-%postun -p /sbin/ldconfig -n libcilkrts
-%post -p /sbin/ldconfig -n libcilkrts-multilib
-%postun -p /sbin/ldconfig -n libcilkrts-multilib
%post -p /sbin/ldconfig -n libgcc
%postun -p /sbin/ldconfig -n libgcc
%post -p /sbin/ldconfig -n libgcc-multilib
%attr(755,root,root) %{_bindir}/gcc-ar
%attr(755,root,root) %{_bindir}/gcc-nm
%attr(755,root,root) %{_bindir}/gcc-ranlib
-#%attr(755,root,root) %{_bindir}/gccbug
%attr(755,root,root) %{_bindir}/gcov
%attr(755,root,root) %{_bindir}/gcov-dump
%attr(755,root,root) %{_bindir}/gcov-tool
%{gcclibdir}/include/avx2intrin.h
%{gcclibdir}/include/avx5124fmapsintrin.h
%{gcclibdir}/include/avx5124vnniwintrin.h
-%{gcclibdir}/include/avx512vpopcntdqintrin.h
+%{gcclibdir}/include/avx512bitalgintrin.h
%{gcclibdir}/include/avx512bwintrin.h
%{gcclibdir}/include/avx512cdintrin.h
%{gcclibdir}/include/avx512dqintrin.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/avx512vbmivlintrin.h
%{gcclibdir}/include/avx512vlbwintrin.h
%{gcclibdir}/include/avx512vldqintrin.h
%{gcclibdir}/include/avx512vlintrin.h
+%{gcclibdir}/include/avx512vnniintrin.h
+%{gcclibdir}/include/avx512vnnivlintrin.h
+%{gcclibdir}/include/avx512vpopcntdqintrin.h
+%{gcclibdir}/include/avx512vpopcntdqvlintrin.h
%{gcclibdir}/include/avxintrin.h
%{gcclibdir}/include/bmi2intrin.h
%{gcclibdir}/include/bmiintrin.h
%{gcclibdir}/include/bmmintrin.h
+%{gcclibdir}/include/cet.h
+%{gcclibdir}/include/cetintrin.h
%{gcclibdir}/include/clflushoptintrin.h
%{gcclibdir}/include/clwbintrin.h
%{gcclibdir}/include/clzerointrin.h
%{gcclibdir}/include/fma4intrin.h
%{gcclibdir}/include/fmaintrin.h
%{gcclibdir}/include/fxsrintrin.h
+%{gcclibdir}/include/gfniintrin.h
%{gcclibdir}/include/ia32intrin.h
%{gcclibdir}/include/immintrin.h
%{gcclibdir}/include/lwpintrin.h
%{gcclibdir}/include/mm3dnow.h
%{gcclibdir}/include/mmintrin.h
%{gcclibdir}/include/mm_malloc.h
+%{gcclibdir}/include/movdirintrin.h
%{gcclibdir}/include/nmmintrin.h
%{gcclibdir}/include/mwaitxintrin.h
+%{gcclibdir}/include/pconfigintrin.h
%{gcclibdir}/include/pkuintrin.h
%{gcclibdir}/include/pmmintrin.h
%{gcclibdir}/include/popcntintrin.h
%{gcclibdir}/include/smmintrin.h
%{gcclibdir}/include/tbmintrin.h
%{gcclibdir}/include/tmmintrin.h
+%{gcclibdir}/include/vaesintrin.h
+%{gcclibdir}/include/vpclmulqdqintrin.h
+%{gcclibdir}/include/wbnoinvdintrin.h
%{gcclibdir}/include/wmmintrin.h
%{gcclibdir}/include/x86intrin.h
%{gcclibdir}/include/xmmintrin.h
%endif
%endif
-%if %{with cilkrts}
-%files -n libcilkrts
-%defattr(644,root,root,755)
-%doc libcilkrts/{ChangeLog,README}
-%attr(755,root,root) %{_libdir}/libcilkrts.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libcilkrts.so.5
-
-%files -n libcilkrts-devel
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libcilkrts.so
-%{_libdir}/libcilkrts.la
-%{_libdir}/libcilkrts.spec
-%{gcclibdir}/include/cilk
-
-%files -n libcilkrts-static
-%defattr(644,root,root,755)
-%{_libdir}/libcilkrts.a
-
-%if %{with multilib}
-%files -n libcilkrts-multilib
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir32}/libcilkrts.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libcilkrts.so.5
-
-%files -n libcilkrts-multilib-devel
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir32}/libcilkrts.so
-%{_libdir32}/libcilkrts.la
-%{_libdir32}/libcilkrts.spec
-
-%files -n libcilkrts-multilib-static
-%defattr(644,root,root,755)
-%{_libdir32}/libcilkrts.a
-%endif
-%endif
-
-# see libmpx/configure.tgt for supported architectures
-%ifarch %{x8664} %{ix86}
-%files -n libmpx
-%defattr(644,root,root,755)
-%doc libmpx/ChangeLog
-%attr(755,root,root) %{_libdir}/libmpx.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmpx.so.2
-%attr(755,root,root) %{_libdir}/libmpxwrappers.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmpxwrappers.so.2
-
-%files -n libmpx-devel
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libmpx.so
-%attr(755,root,root) %{_libdir}/libmpxwrappers.so
-%{_libdir}/libmpx.la
-%{_libdir}/libmpxwrappers.la
-%{_libdir}/libmpx.spec
-
-%files -n libmpx-static
-%defattr(644,root,root,755)
-%{_libdir}/libmpx.a
-%{_libdir}/libmpxwrappers.a
-%endif
-
-%if %{with multilib}
-%files -n libmpx-multilib
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir32}/libmpx.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libmpx.so.2
-%attr(755,root,root) %{_libdir32}/libmpxwrappers.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libmpxwrappers.so.2
-
-%files -n libmpx-multilib-devel
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir32}/libmpx.so
-%attr(755,root,root) %{_libdir32}/libmpxwrappers.so
-%{_libdir32}/libmpx.la
-%{_libdir32}/libmpxwrappers.la
-%{_libdir32}/libmpx.spec
-
-%files -n libmpx-multilib-static
-%defattr(644,root,root,755)
-%{_libdir32}/libmpx.a
-%{_libdir32}/libmpxwrappers.a
-%endif
-
%if %{with ada}
%files ada
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%{gcclibdir}/32/adalib/libgnarl.a
%{gcclibdir}/32/adalib/libgnat.a
+%ifarch %{x8664}
+# these exist only when host is x86_64???
+%{gcclibdir}/32/adalib/libgnarl_pic.a
+%{gcclibdir}/32/adalib/libgnat_pic.a
+%endif
%endif
%if %{with cxx}
%endif
%endif
+%if %{with apidocs}
+%files -n libstdc++-apidocs
+%defattr(644,root,root,755)
+%doc libstdc++-v3/doc/html/*
+%endif
%endif
%if %{with fortran}
%defattr(644,root,root,755)
%doc libgfortran/{AUTHORS,README,ChangeLog}
%attr(755,root,root) %{_libdir}/libgfortran.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgfortran.so.4
+%attr(755,root,root) %ghost %{_libdir}/libgfortran.so.5
%files -n libgfortran-static
%defattr(644,root,root,755)
%files -n libgfortran-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libgfortran.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.4
+%attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.5
%files -n libgfortran-multilib-static
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/gccgo
%attr(755,root,root) %{_bindir}/go
%attr(755,root,root) %{_bindir}/gofmt
+%attr(755,root,root) %{gcclibdir}/buildid
%attr(755,root,root) %{gcclibdir}/cgo
%attr(755,root,root) %{gcclibdir}/go1
+%attr(755,root,root) %{gcclibdir}/test2json
+%attr(755,root,root) %{gcclibdir}/vet
%dir %{_libdir}/go
%{_libdir}/go/%{version}
%{_mandir}/man1/go.1*
%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.11
+%attr(755,root,root) %ghost %{_libdir}/libgo.so.13
%files -n libgo-devel
%defattr(644,root,root,755)
%files -n libgo-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libgo.so.11
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.13
%files -n libgo-multilib-devel
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
%attr(755,root,root) %{_libdir}/libasan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libasan.so.4
+%attr(755,root,root) %ghost %{_libdir}/libasan.so.5
%files -n libasan-devel
%defattr(644,root,root,755)
%files -n libasan-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libasan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libasan.so.4
+%attr(755,root,root) %ghost %{_libdir32}/libasan.so.5
%files -n libasan-multilib-devel
%defattr(644,root,root,755)
%files -n liblsan-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/liblsan.so
+%{_libdir}/liblsan_preinit.o
%{_libdir}/liblsan.la
%{gcclibdir}/include/sanitizer/lsan_interface.h
%attr(755,root,root) %{_libdir}/libtsan.so
%{_libdir}/libtsan_preinit.o
%{_libdir}/libtsan.la
+%{gcclibdir}/include/sanitizer/tsan_interface.h
%files -n libtsan-static
%defattr(644,root,root,755)
%files -n libubsan
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libubsan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libubsan.so.0
+%attr(755,root,root) %ghost %{_libdir}/libubsan.so.1
%files -n libubsan-devel
%defattr(644,root,root,755)
%files -n libubsan-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libubsan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libubsan.so.0
+%attr(755,root,root) %ghost %{_libdir32}/libubsan.so.1
%files -n libubsan-multilib-devel
%defattr(644,root,root,755)
%{gcclibdir}/plugin/gengtype
%{gcclibdir}/plugin/gtype.state
%{gcclibdir}/plugin/include
-%attr(755,root,root) %{gcclibdir}/plugin/libcc1plugin.la
+%{gcclibdir}/plugin/libcc1plugin.la
%attr(755,root,root) %{gcclibdir}/plugin/libcc1plugin.so
-%attr(755,root,root) %{gcclibdir}/plugin/libcp1plugin.la
+%{gcclibdir}/plugin/libcp1plugin.la
%attr(755,root,root) %{gcclibdir}/plugin/libcp1plugin.so
+
+# see libmpx/configure.tgt for supported architectures
+%ifarch %{x8664} %{ix86}
+%files -n libmpx
+%defattr(644,root,root,755)
+%doc libmpx/ChangeLog
+%attr(755,root,root) %{_libdir}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpx.so.2
+%attr(755,root,root) %{_libdir}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpxwrappers.so.2
+
+%files -n libmpx-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmpx.so
+%attr(755,root,root) %{_libdir}/libmpxwrappers.so
+%{_libdir}/libmpx.la
+%{_libdir}/libmpxwrappers.la
+%{_libdir}/libmpx.spec
+
+%files -n libmpx-static
+%defattr(644,root,root,755)
+%{_libdir}/libmpx.a
+%{_libdir}/libmpxwrappers.a
+%endif
+
+%if %{with multilib}
+%files -n libmpx-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmpx.so.2
+%attr(755,root,root) %{_libdir32}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmpxwrappers.so.2
+
+%files -n libmpx-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmpx.so
+%attr(755,root,root) %{_libdir32}/libmpxwrappers.so
+%{_libdir32}/libmpx.la
+%{_libdir32}/libmpxwrappers.la
+%{_libdir32}/libmpx.spec
+
+%files -n libmpx-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libmpx.a
+%{_libdir32}/libmpxwrappers.a
+%endif