File mingw64-gcc.spec of Package mingw64-gcc

#
# spec file for package mingw64-gcc
#
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define include_ada 0
%{_mingw64_package_header_debug}
Name:           mingw64-gcc
Version:        15.2.0
Release:        0
Summary:        MinGW Windows compiler (GCC) for C
License:        GPL-3.0-or-later
URL:            https://www.mingw.org/
Source0:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz
Source100:      mingw64-gcc-rpmlintrc
BuildRequires:  gcc-c++
BuildRequires:  gmp-devel
BuildRequires:  mingw64-cross-binutils
BuildRequires:  mingw64-cross-gcc >= %{version}
BuildRequires:  mingw64-cross-gcc-c++ >= %{version}
BuildRequires:  mingw64-cross-gcc-fortran >= %{version}
BuildRequires:  mingw64-cross-gcc-objc >= %{version}
BuildRequires:  mingw64-cross-pkg-config
BuildRequires:  mingw64-filesystem
BuildRequires:  mingw64-gmp-devel >= 4.2.0
BuildRequires:  mingw64-headers >= 3.1.0
BuildRequires:  mingw64-mpc-devel >= 0.8.0
BuildRequires:  mingw64-mpfr-devel >= 2.4.0
BuildRequires:  mingw64-runtime >= 3.1.0
BuildRequires:  mingw64-zlib-devel
BuildRequires:  mpc-devel
BuildRequires:  mpfr-devel
BuildRequires:  texinfo
BuildRequires:  unzip
BuildRequires:  xz
BuildRequires:  zip
#!BuildIgnore:  gcc-PIE
#!BuildIgnore:  post-build-checks
Requires:       mingw64-binutils
Requires:       mingw64-cpp >= %{version}
Requires:       mingw64-headers
Requires:       mingw64-runtime
Requires:       mingw64-winpthreads-devel
BuildArch:      noarch
%if %{include_ada}
BuildRequires:  gcc-ada
BuildRequires:  mingw64-cross-gcc-ada >= %{version}
%endif

%description
MinGW Windows compiler (GCC) for C

%package -n mingw64-cpp
Summary:        MinGW Windows C Preprocessor

%description -n mingw64-cpp
MinGW Windows C Preprocessor

%package c++
Summary:        MinGW Windows compiler for C++

%description c++
MinGW Windows compiler for C++

%package fortran
Summary:        MinGW Windows compiler for Fortran

%description fortran
MinGW Windows compiler for Fortran

%package objc
Summary:        MinGW Windows compiler for Objective-C and Objective-C++

%description objc
MinGW Windows compiler for Objective-C and Objective-C++

%{_mingw64_debug_package}

%prep
%autosetup -p1 -n gcc-%{version}

%build
mkdir -p build
cd build

languages="c,c++,fortran,objc,obj-c++"

%if %{include_ada}
languages+=",ada"
ada_options=-enable-libada
%else
ada_options=
%endif

CC_FOR_TARGET=%{_mingw64_cc} \
CXX_FOR_TARGET=%{_mingw64_cxx} \
GFORTRAN_FOR_TARGET=%{_mingw64_target}-gfortran \
GCJ_FOR_TARGET=%{_mingw64_gcj} \
CFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw64_cflags} -Wno-error=format -Wno-error=format-extra-args" \
CFLAGS_FOR_BUILD="-I-%{_mingw64_includedir}" \
CPPFLAGS_FOR_BUILD="-I-%{_mingw64_includedir}" \
CXXFLAGS_FOR_BUILD="-I-%{_mingw64_includedir}" \
CXXFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw64_cflags} -Wno-error=format -Wno-error=format-extra-args" \
CPPFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw64_cflags}" \
../configure \
  --prefix=%{_mingw64_prefix} \
  --disable-werror \
  --disable-werror-always \
  --disable-bootstrap \
  --host=%{_mingw64_host} \
  --with-gnu-as --with-gnu-ld --verbose \
  --without-newlib \
  --disable-multilib \
  --with-system-zlib \
  --disable-plugin \
  --disable-shared \
  --disable-nls --without-included-gettext \
  --disable-win32-registry \
  --enable-threads=posix \
  --enable-version-specific-runtime-libs \
  --with-build-sysroot=%{_mingw64_sysroot} \
  --with-sysroot=%{_mingw64_prefix} \
  --enable-languages="$languages" $optargs \
  --without-x \
  ${ada_options} \
  --disable-gmp \
  --enable-hash-synchronization \
  --enable-fully-dynamic-string \
  --enable-libgomp \
  --enable-linker-build-id \
  --disable-vtable-verify \
  --with-pkgversion="mia"

%make_build all

%install
cd build

%make_install

rm -f %{buildroot}%{_mingw64_infodir}/dir

# Hack to work around a bug in GCC6
perl -pi -e 's#include_next\ \<stdlib\.h\>#include\ \<stdlib\.h\>#g' \
	%{buildroot}%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/c++/cstdlib \
	%{buildroot}%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/c++/bits/std_abs.h
perl -pi -e 's#include_next\ \<math\.h\>#include\ \<math\.h\>#g' \
	%{buildroot}%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/c++/cmath

%files
%{_mingw64_bindir}/gcc*.exe
%{_mingw64_bindir}/gcov*.exe
%{_mingw64_bindir}/lto-dump*.exe
%exclude %{_mingw64_bindir}/%{_mingw64_target}-gcc*.exe
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/crtbegin.o
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/crtend.o
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/crtfastmath.o
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libcaf_single.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libgcc.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libgcov.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libssp.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libssp_nonshared.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libgomp.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libgomp.spec
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libatomic.a
%{_mingw64_infodir}/libgomp.info.gz
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include-fixed
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/ssp
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include-fixed/README
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/*.h
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/ssp/*.h
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/install-tools
%dir %{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/install-tools
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/install-tools/*
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/install-tools/*
%exclude %{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/install-tools/*.debug
%{_mingw64_mandir}/man1/gcc.1*
%{_mingw64_mandir}/man1/gcov.1*
%{_mingw64_mandir}/man1/gcov-dump.1*
%{_mingw64_mandir}/man1/gcov-tool.1*
%{_mingw64_mandir}/man1/lto-dump.1*
%{_mingw64_mandir}/man7/fsf-funding.7*
%{_mingw64_mandir}/man7/gfdl.7*
%{_mingw64_mandir}/man7/gpl.7*
%{_mingw64_infodir}/gcc*.info*
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/collect2.exe
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/g++-mapper-server.exe
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/lto1.exe
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/lto-wrapper.exe
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/liblto_plugin.dll
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/liblto_plugin.dll.a
%dir %{_mingw64_datadir}/gcc-%{version}
%dir %{_mingw64_datadir}/gcc-%{version}/python

%files -n mingw64-cpp
%{_mingw64_bindir}/cpp.exe
%{_mingw64_mandir}/man1/cpp.1*
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}
%dir %{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/cc1.exe
%{_mingw64_infodir}/cpp*.info*

%files c++
%{_mingw64_bindir}/g++.exe
%{_mingw64_bindir}/c++.exe
%exclude %{_mingw64_bindir}/%{_mingw64_target}-g++.exe
%exclude %{_mingw64_bindir}/%{_mingw64_target}-c++.exe
%{_mingw64_mandir}/man1/g++.1*
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/c++/
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libstdc++.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libstdc++.modules.json
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libstdc++exp.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libstdc++fs.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libsupc++.a
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/cc1plus.exe
%{_mingw64_datadir}/gcc-%{version}/python/libstdcxx
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libstdc++.a-gdb.py

%files fortran
%{_mingw64_bindir}/gfortran.exe
%exclude %{_mingw64_bindir}/%{_mingw64_target}-gfortran.exe
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libgfortran.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libgfortran.spec
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libquadmath.a
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/finclude/ieee_arithmetic.mod
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/finclude/ieee_exceptions.mod
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/finclude/ieee_features.mod
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/f951.exe
%{_mingw64_mandir}/man1/gfortran.1*
%{_mingw64_infodir}/libquadmath.info.gz
%{_mingw64_infodir}/gfortran.info*

%files objc
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/include/objc
%{_mingw64_libdir}/gcc/%{_mingw64_target}/%{version}/libobjc.a
%{_mingw64_libexecdir}/gcc/%{_mingw64_target}/%{version}/cc1obj*.exe

%changelog
openSUSE Build Service is sponsored by