#
# Conditional build:
%bcond_with bootstrap # bootstrap build (using binary w32api/mingwrt, only C/C++, no gomp)
+%bcond_without pthreads # POSIX threads support (needed for GOMP and C++ 11 thread/mutex support)
%bcond_without gomp # OpenMP libraries
#
%if %{with bootstrap}
+%undefine with_pthreads
+%endif
+%if %{without pthreads}
%undefine with_gomp
%endif
Summary: Cross MinGW32 GNU binary utility development utilities - gcc
Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - MinGW32 gcc
Summary(tr.UTF-8): GNU geliştirme araçları - MinGW32 gcc
Name: crossmingw32-gcc
-Version: 9.5.0
+Version: 10.5.0
Release: 1
Epoch: 1
License: GPL v3+
Group: Development/Languages
Source0: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz
-# Source0-md5: 34cd76facb562835ff5faca81fead17e
+# Source0-md5: c7d1958570fbd1cd859b015774b9987a
%define w32api_ver 5.4.2
#Source1Download: https://osdn.net/projects/mingw/releases/
Source1: https://osdn.net/projects/mingw/downloads/74926/w32api-%{w32api_ver}-mingw32-dev.tar.xz
Patch2: %{name}-lfs.patch
Patch3: gcc-mingw32.patch
Patch4: gcc-build-libvtv.patch
+Patch5: gcc-pthreads-w32.patch
URL: http://gcc.gnu.org/
BuildRequires: autoconf >= 2.64
BuildRequires: automake >= 1:1.11.1
BuildRequires: bison
-BuildRequires: crossmingw32-binutils >= 2.23
-%{?with_gomp:BuildRequires: crossmingw32-pthreads-w32}
+BuildRequires: crossmingw32-binutils >= 2.30
+%{?with_pthreads:BuildRequires: crossmingw32-pthreads-w32}
%if %{without bootstrap}
BuildRequires: crossmingw32-runtime >= 3.5
-BuildRequires: crossmingw32-w32api >= 3.1
+BuildRequires: crossmingw32-w32api >= 1:5.4.2-3
%endif
BuildRequires: flex >= 2.5.4
BuildRequires: gettext-tools >= 0.14.5
BuildRequires: isl-devel >= 0.15
BuildRequires: libmpc-devel >= 0.8.1
BuildRequires: libstdc++-devel
-BuildRequires: mpfr-devel >= 2.4.2
+BuildRequires: mpfr-devel >= 3.1.0
BuildRequires: perl-tools-pod
BuildRequires: tar >= 1:1.22
BuildRequires: texinfo >= 4.7
BuildRequires: xz
BuildRequires: zlib-devel
BuildConflicts: pdksh < 5.2.14-50
-Requires: crossmingw32-binutils >= 2.23
+Requires: crossmingw32-binutils >= 2.30
Requires: gcc-dirs
Requires: gmp >= 4.3.2
Requires: isl >= 0.15
Requires: libmpc >= 0.8.1
-Requires: mpfr >= 2.4.2
+Requires: mpfr >= 3.1.0
# java support dropped from gcc 7+
Obsoletes: crossmingw32-java < 1:7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
%if %{with bootstrap}
# note: "winsup" dirs are special, handled by gcc's configure
--enable-shared \
--disable-sjlj-exceptions \
--disable-symvers \
- --enable-threads \
+ --enable-threads%{?with_pthreads:=posix} \
--disable-werror \
--disable-win32-registry \
--target=%{target}
ln -sf %{archbindir}/%{target}-gcov-dump $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov-dump
ln -sf %{archbindir}/%{target}-gcov-tool $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov-tool
ln -sf %{archbindir}/%{target}-gfortran $RPM_BUILD_ROOT%{_bindir}/%{target}-gfortran
+ln -sf %{archbindir}/%{target}-lto-dump $RPM_BUILD_ROOT%{_bindir}/%{target}-lto-dump
# DLLs
install -d $RPM_BUILD_ROOT%{_dlldir}
%attr(755,root,root) %{_bindir}/%{target}-gcov
%attr(755,root,root) %{_bindir}/%{target}-gcov-dump
%attr(755,root,root) %{_bindir}/%{target}-gcov-tool
+%attr(755,root,root) %{_bindir}/%{target}-lto-dump
%attr(755,root,root) %{archbindir}/%{target}-cpp
%attr(755,root,root) %{archbindir}/%{target}-gcc
%attr(755,root,root) %{archbindir}/%{target}-gcc-%{version}
%attr(755,root,root) %{archbindir}/%{target}-gcov
%attr(755,root,root) %{archbindir}/%{target}-gcov-dump
%attr(755,root,root) %{archbindir}/%{target}-gcov-tool
+%attr(755,root,root) %{archbindir}/%{target}-lto-dump
%{archlibdir}/libgcc_s.a
%dir %{gccarchdir}
%dir %{gcclibdir}
%{_mandir}/man1/%{target}-gcov.1*
%{_mandir}/man1/%{target}-gcov-dump.1*
%{_mandir}/man1/%{target}-gcov-tool.1*
+%{_mandir}/man1/%{target}-lto-dump.1*
%files -n crossmingw32-libgcc-dll
%defattr(644,root,root,755)
%attr(755,root,root) %{gcclibdir}/cc1plus
%{archlibdir}/libstdc++.dll.a
%{archlibdir}/libstdc++.la
+%{archlibdir}/libstdc++fs.a
+%{archlibdir}/libstdc++fs.la
%{archlibdir}/libsupc++.la
%{archlibdir}/libsupc++.a
%{archincludedir}/c++