commit a235e9a900528e3a6d0157f1024b1f31ddafaae4 Author: Jiayi Yin Date: Sun May 18 19:54:29 2025 +0000 转换LFS仓库为普通仓库 diff --git a/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch b/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch new file mode 100644 index 0000000..ce4819d --- /dev/null +++ b/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch @@ -0,0 +1,40 @@ +diff -rupN --no-dereference gcc-11.2.1-20210728/libgomp/libgomp.h gcc-11.2.1-20210728-new/libgomp/libgomp.h +--- gcc-11.2.1-20210728/libgomp/libgomp.h 2021-07-28 11:09:49.000000000 +0200 ++++ gcc-11.2.1-20210728-new/libgomp/libgomp.h 2021-07-30 11:20:02.737945857 +0200 +@@ -69,6 +69,13 @@ + # endif + #endif + ++#include ++#ifdef __MINGW_PRINTF_FORMAT ++#define PRINTF_FORMAT __MINGW_PRINTF_FORMAT ++#else ++#define PRINTF_FORMAT printf ++#endif ++ + #ifdef HAVE_ATTRIBUTE_VISIBILITY + # pragma GCC visibility push(hidden) + #endif +@@ -173,7 +180,7 @@ team_free (void *ptr) + + extern void gomp_vdebug (int, const char *, va_list); + extern void gomp_debug (int, const char *, ...) +- __attribute__ ((format (printf, 2, 3))); ++ __attribute__ ((format (PRINTF_FORMAT, 2, 3))); + #define gomp_vdebug(KIND, FMT, VALIST) \ + do { \ + if (__builtin_expect (gomp_debug_var, 0)) \ +@@ -186,11 +193,11 @@ extern void gomp_debug (int, const char + } while (0) + extern void gomp_verror (const char *, va_list); + extern void gomp_error (const char *, ...) +- __attribute__ ((format (printf, 1, 2))); ++ __attribute__ ((format (PRINTF_FORMAT, 1, 2))); + extern void gomp_vfatal (const char *, va_list) + __attribute__ ((noreturn)); + extern void gomp_fatal (const char *, ...) +- __attribute__ ((noreturn, format (printf, 1, 2))); ++ __attribute__ ((noreturn, format (PRINTF_FORMAT, 1, 2))); + + struct gomp_task; + struct gomp_taskgroup; diff --git a/gcc-11.2.1-20211019.tar.xz b/gcc-11.2.1-20211019.tar.xz new file mode 100644 index 0000000..c07d583 Binary files /dev/null and b/gcc-11.2.1-20211019.tar.xz differ diff --git a/mingw-gcc-config.patch b/mingw-gcc-config.patch new file mode 100644 index 0000000..5d86241 --- /dev/null +++ b/mingw-gcc-config.patch @@ -0,0 +1,42 @@ +diff -rupN --no-dereference gcc-11.2.1-20210728/config/intdiv0.m4 gcc-11.2.1-20210728-new/config/intdiv0.m4 +--- gcc-11.2.1-20210728/config/intdiv0.m4 2021-07-28 11:09:49.000000000 +0200 ++++ gcc-11.2.1-20210728-new/config/intdiv0.m4 2021-07-30 11:19:58.858765997 +0200 +@@ -31,10 +31,10 @@ sigfpe_handler (sig) int sig; + exit (sig != SIGFPE); + } + +-int x = 1; +-int y = 0; +-int z; +-int nan; ++volatile int x = 1; ++volatile int y = 0; ++volatile int z; ++volatile int nan; + + int main () + { +diff -rupN --no-dereference gcc-11.2.1-20210728/libiberty/acinclude.m4 gcc-11.2.1-20210728-new/libiberty/acinclude.m4 +--- gcc-11.2.1-20210728/libiberty/acinclude.m4 2021-07-28 11:09:49.000000000 +0200 ++++ gcc-11.2.1-20210728-new/libiberty/acinclude.m4 2021-07-30 11:19:58.859766044 +0200 +@@ -157,7 +157,7 @@ if test $ac_cv_os_cray = yes; then + fi + + AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction, +-[AC_TRY_RUN([find_stack_direction () ++[AC_TRY_RUN([__attribute__ ((noclone,noinline)) find_stack_direction () + { + static char *addr = 0; + auto char dummy; +diff -rupN --no-dereference gcc-11.2.1-20210728/libiberty/configure.ac gcc-11.2.1-20210728-new/libiberty/configure.ac +--- gcc-11.2.1-20210728/libiberty/configure.ac 2021-07-28 11:09:49.000000000 +0200 ++++ gcc-11.2.1-20210728-new/libiberty/configure.ac 2021-07-30 11:19:58.859766044 +0200 +@@ -665,7 +665,7 @@ if test -z "${setobjs}"; then + for v in $vars; do + AC_MSG_CHECKING([for $v]) + AC_CACHE_VAL(libiberty_cv_var_$v, +- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int *p;]],[[extern int $v []; p = $v;]])], ++ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[__attribute__ ((used)) int *p;]],[[extern int $v []; p = $v;]])], + [eval "libiberty_cv_var_$v=yes"], + [eval "libiberty_cv_var_$v=no"])]) + if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then diff --git a/mingw-gcc.spec b/mingw-gcc.spec new file mode 100644 index 0000000..5bd2645 --- /dev/null +++ b/mingw-gcc.spec @@ -0,0 +1,721 @@ +%global __os_install_post /usr/lib/rpm/brp-compress %{nil} + +# Steps: +# 1. Build mingw-gcc with bootstrap=1, enable_libgomp=0 +# 2. Build mingw-crt +# 3. Build mingw-gcc with bootstrap=0, enable_libgomp=0 +# 4. Build mingw-winpthreads +# 5. Build mingw-gcc with bootstrap=0, enable_libgomp=1 + +# Set this to one when mingw-crt isn't built yet +%global bootstrap 0 +%global only_libssp 0 +# Set this one to zero when mingw-winpthreads isn't built yet +%global enable_libgomp 0 + +%if 0%{?rhel} > 8 +%global build_isl 0 +%else +%global build_isl 1 +%endif + +%global isl_version 0.16.1 + +# Run the testsuite +%global enable_tests 0 + +%global DATE 20211019 +%global GITREV 0990a48aaf68b56a3737fdb290328df1da9095cc +%global gcc_version 11.2.1 +%global gcc_major 11 + +Name: mingw-gcc +Version: %{gcc_version} +Release: 9 +Summary: MinGW Windows cross-compiler (GCC) for C + +License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions +URL: http://gcc.gnu.org + +# The source for this package was pulled from upstream's vcs. Use the +# following commands to generate the tarball: +# git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp +# git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin %%{gitrev} +# git --git-dir=gcc-dir.tmp/.git archive --prefix=%%{name}-%%{version}-%%{DATE}/ %%{gitrev} | xz -9e > %%{name}-%%{version}-%%{DATE}.tar.xz +# rm -rf gcc-dir.tmp +%global srcdir gcc-%{version}-%{DATE} +Source0: %{srcdir}.tar.xz +Patch0: mingw-gcc-config.patch +# See https://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/8fd2fb03-9b8a-07e1-e162-0bb48bcc3984%40gmail.com/#msg37200751 +Patch1: 0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch + +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: texinfo +BuildRequires: mingw32-filesystem >= 95 +BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw32-binutils +BuildRequires: mingw64-binutils +BuildRequires: mingw32-headers +BuildRequires: mingw64-headers +BuildRequires: gmp-devel +BuildRequires: mpfr-devel +BuildRequires: libmpc-devel +BuildRequires: libgomp +BuildRequires: flex +BuildRequires: zlib-devel +%if %{build_isl} +BuildRequires: isl >= %{isl_version} +BuildRequires: isl-devel >= %{isl_version} +%endif +%if 0%{bootstrap} == 0 +BuildRequires: mingw32-crt +BuildRequires: mingw64-crt +%if 0%{only_libssp} +BuildRequires: mingw32-winpthreads-static +BuildRequires: mingw64-winpthreads-static +%endif +%if 0%{enable_libgomp} +BuildRequires: mingw32-winpthreads +BuildRequires: mingw64-winpthreads +%endif +%if 0%{enable_tests} +BuildRequires: wine +BuildRequires: autogen +BuildRequires: dejagnu +BuildRequires: sharutils +%endif +%endif +Provides: bundled(libiberty) + +%description +MinGW Windows cross-compiler (GCC) for C. + +############################################################################### +# Mingw32 +############################################################################### +%package -n mingw32-gcc +Summary: MinGW Windows cross-compiler (GCC) for C for the win32 target +Requires: mingw32-binutils +Requires: mingw32-headers +Requires: mingw32-cpp +%if 0%{bootstrap} == 0 +Requires: mingw32-crt +%endif + +%description -n mingw32-gcc +MinGW Windows cross-compiler (GCC) for C for the win32 target. + + +%package -n mingw32-cpp +Summary: MinGW Windows cross-C Preprocessor for the win32 target +# NB: Explicit mingw32-filesystem dependency is REQUIRED here. +Requires: mingw32-filesystem >= 95 + +%description -n mingw32-cpp +MinGW Windows cross-C Preprocessor for the win32 target. + + +%package -n mingw32-gcc-c++ +Summary: MinGW Windows cross-compiler for C++ for the win32 target +Requires: mingw32-gcc = %{version}-%{release} + +%description -n mingw32-gcc-c++ +MinGW Windows cross-compiler for C++ for the win32 target. + + +%package -n mingw32-gcc-objc +Summary: MinGW Windows cross-compiler support for Objective C for the win32 target +Requires: mingw32-gcc = %{version}-%{release} + +%description -n mingw32-gcc-objc +MinGW Windows cross-compiler support for Objective C for the win32 target. + + +%package -n mingw32-gcc-objc++ +Summary: MinGW Windows cross-compiler support for Objective C++ for the win32 target +Requires: mingw32-gcc-c++ = %{version}-%{release} +Requires: mingw32-gcc-objc = %{version}-%{release} + +%description -n mingw32-gcc-objc++ +MinGW Windows cross-compiler support for Objective C++ for the win32 target. + + +%package -n mingw32-gcc-gfortran +Summary: MinGW Windows cross-compiler for FORTRAN for the win32 target +Requires: mingw32-gcc = %{version}-%{release} + +%description -n mingw32-gcc-gfortran +MinGW Windows cross-compiler for FORTRAN for the win32 target. + + +%if 0%{enable_libgomp} +%package -n mingw32-libgomp +Summary: GCC OpenMP v3.0 shared support library for the win32 target +Requires: mingw32-gcc = %{version}-%{release} + +%description -n mingw32-libgomp +This package contains GCC shared support library which is +needed for OpenMP v3.0 support for the win32 target. +%endif + +############################################################################### +# Mingw64 +############################################################################### +%package -n mingw64-gcc +Summary: MinGW Windows cross-compiler (GCC) for C for the win64 target +Requires: mingw64-binutils +Requires: mingw64-headers +Requires: mingw64-cpp +%if 0%{bootstrap} == 0 +Requires: mingw64-crt +%endif + +%description -n mingw64-gcc +MinGW Windows cross-compiler (GCC) for C for the win64 target. + + +%package -n mingw64-cpp +Summary: MinGW Windows cross-C Preprocessor for the win64 target. +# NB: Explicit mingw64-filesystem dependency is REQUIRED here. +Requires: mingw64-filesystem >= 95 + +%description -n mingw64-cpp +MinGW Windows cross-C Preprocessor for the win64 target + + +%package -n mingw64-gcc-c++ +Summary: MinGW Windows cross-compiler for C++ for the win64 target +Requires: mingw64-gcc = %{version}-%{release} + +%description -n mingw64-gcc-c++ +MinGW Windows cross-compiler for C++ for the win64 target. + + +%package -n mingw64-gcc-objc +Summary: MinGW Windows cross-compiler support for Objective C for the win64 target +Requires: mingw64-gcc = %{version}-%{release} + +%description -n mingw64-gcc-objc +MinGW Windows cross-compiler support for Objective C for the win64 target. + + +%package -n mingw64-gcc-objc++ +Summary: MinGW Windows cross-compiler support for Objective C++ for the win64 target +Requires: mingw64-gcc-c++ = %{version}-%{release} +Requires: mingw64-gcc-objc = %{version}-%{release} + +%description -n mingw64-gcc-objc++ +MinGW Windows cross-compiler support for Objective C++ for the win64 target. + + +%package -n mingw64-gcc-gfortran +Summary: MinGW Windows cross-compiler for FORTRAN for the win64 target +Requires: mingw64-gcc = %{version}-%{release} + +%description -n mingw64-gcc-gfortran +MinGW Windows cross-compiler for FORTRAN for the win64 target. + + +%if 0%{enable_libgomp} +%package -n mingw64-libgomp +Summary: GCC OpenMP v3.0 shared support library for the win64 target +Requires: mingw64-gcc = %{version}-%{release} + +%description -n mingw64-libgomp +This package contains GCC shared support library which is +needed for OpenMP v3.0 support for the win32 target. +%endif + + +%prep +%autosetup -p1 -n %{srcdir} +echo 'openEuler MinGW %{version}-%{release}' > gcc/DEV-PHASE + +%build +# Default configure arguments +configure_args="\ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} \ + --datadir=%{_datadir} \ + --build=%_build --host=%_host \ + --with-gnu-as --with-gnu-ld --verbose \ + --without-newlib \ + --disable-multilib \ + --disable-plugin \ + --with-system-zlib \ + --disable-nls --without-included-gettext \ + --disable-win32-registry \ + --enable-languages="c,c++,objc,obj-c++,fortran" \ + --with-bugurl=http://bugzilla.redhat.com/bugzilla \ + --enable-threads=posix" + +%if %{build_isl} +configure_args="$configure_args --with-isl" +%else +configure_args="$configure_args --without-isl" +%endif + +# When bootstrapping, disable LTO support as it causes errors while building any binary +# $ i686-w64-mingw32-gcc -o conftest conftest.c >&5 +# i686-w64-mingw32-gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found +%if 0%{bootstrap} +configure_args="$configure_args --disable-lto" +%endif + +%if 0%{only_libssp} +configure_args="$configure_args --disable-libitm --disable-libgomp --disable-libgo --disable-libobjc --disable-libatomic --disable-libstdcxx --disable-libgfortran" +%endif + +%if 0%{enable_libgomp} +configure_args="$configure_args --enable-libgomp" +%endif + +# The %%configure macro can't be used for out of source builds +# without overriding other variables and causes unwanted side +# effects so make sure the right compiler flags are used +export CC="%{__cc} ${RPM_OPT_FLAGS}" + +# Win32 +mkdir build_win32 +pushd build_win32 + ../configure $configure_args --target=%{mingw32_target} --with-sysroot=%{mingw32_sysroot} --with-gxx-include-dir=%{mingw32_includedir}/c++ --disable-sjlj-exceptions --with-dwarf2 +popd + +# Win64 +mkdir build_win64 +pushd build_win64 + ../configure $configure_args --target=%{mingw64_target} --with-sysroot=%{mingw64_sysroot} --with-gxx-include-dir=%{mingw64_includedir}/c++ +popd + +# If we're bootstrapping, only build the GCC core +%if 0%{bootstrap} +%mingw_make_build all-gcc +%else +%mingw_make_build all +%endif + + +%if 0%{enable_tests} +%check +# Win32 +# Create a seperate wine prefix +export WINEPREFIX=/tmp/.wine_gcc_testsuite +rm -rf $WINEPREFIX +mkdir $WINEPREFIX + +# The command below will fail, but that's intentional +# We only have to call a wine binary which triggers +# the generation and population of a wine prefix +winecfg || : + +# Copy the GCC DLL's inside the wine prefix +SYSTEM32_DIR=$WINEPREFIX/drive_c/windows/syswow64 +if [ ! -d $SYSTEM32_DIR ] ; then + SYSTEM32_DIR=$WINEPREFIX/drive_c/windows/system32 +fi +cp build_win32/i686-w64-mingw32/libquadmath/.libs/libquadmath-0.dll $SYSTEM32_DIR +cp build_win32/i686-w64-mingw32/libgfortran/.libs/libgfortran-5.dll $SYSTEM32_DIR +cp build_win32/i686-w64-mingw32/libobjc/.libs/libobjc-4.dll $SYSTEM32_DIR +cp build_win32/i686-w64-mingw32/libssp/.libs/libssp-0.dll $SYSTEM32_DIR +cp build_win32/i686-w64-mingw32/libstdc++-v3/src/.libs/libstdc++-6.dll $SYSTEM32_DIR +cp build_win32/i686-w64-mingw32/libgcc/shlib/libgcc_s_dw2-1.dll $SYSTEM32_DIR +%if 0%{enable_libgomp} +cp %{mingw32_bindir}/libwinpthread-1.dll $SYSTEM32_DIR +cp build_win32/i686-w64-mingw32/libgomp/.libs/libgomp-1.dll $SYSTEM32_DIR +%endif + +SYSTEM64_DIR=$WINEPREFIX/drive_c/windows/system32 +cp build_win64/x86_64-w64-mingw32/libquadmath/.libs/libquadmath-0.dll $SYSTEM64_DIR +cp build_win64/x86_64-w64-mingw32/libgfortran/.libs/libgfortran-5.dll $SYSTEM64_DIR +cp build_win64/x86_64-w64-mingw32/libobjc/.libs/libobjc-4.dll $SYSTEM64_DIR +cp build_win64/x86_64-w64-mingw32/libssp/.libs/libssp-0.dll $SYSTEM64_DIR +cp build_win64/x86_64-w64-mingw32/libstdc++-v3/src/.libs/libstdc++-6.dll $SYSTEM64_DIR +cp build_win64/x86_64-w64-mingw32/libgcc/shlib/libgcc_s_seh-1.dll $SYSTEM64_DIR +%if 0%{enable_libgomp} +cp %{mingw64_bindir}/libwinpthread-1.dll $SYSTEM64_DIR +cp build_win64/x86_64-w64-mingw32/libgomp/.libs/libgomp-1.dll $SYSTEM64_DIR +%endif + +# According to Kai Tietz (of the mingw-w64 project) it's recommended +# to set the environment variable GCOV_PREFIX_STRIP +export GCOV_PREFIX_STRIP=1000 + +# Run the testsuite +# Code taken from the native openEuler GCC package to collect testsuite results +pushd build_win32 + make -k check %{?_smp_mflags} || : + echo ====================TESTING WIN32========================= + ( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' + echo ====================TESTING WIN32 END===================== + mkdir testlogs-%{mingw32_target}-%{version}-%{release} + for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do + ln $i testlogs-%{mingw32_target}-%{version}-%{release}/ || : + done + tar cf - testlogs-%{mingw32_target}-%{version}-%{release} | bzip2 -9c \ + | uuencode testlogs-%{mingw32_target}.tar.bz2 || : + rm -rf testlogs-%{mingw32_target}-%{version}-%{release} +popd + +pushd build_win64 + make -k check %{?_smp_mflags} || : + echo ====================TESTING WIN64========================= + ( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' + echo ====================TESTING WIN64 END===================== + mkdir testlogs-%{mingw64_target}-%{version}-%{release} + for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do + ln $i testlogs-%{mingw64_target}-%{version}-%{release}/ || : + done + tar cf - testlogs-%{mingw64_target}-%{version}-%{release} | bzip2 -9c \ + | uuencode testlogs-%{mingw64_target}.tar.bz2 || : + rm -rf testlogs-%{mingw64_target}-%{version}-%{release} +popd + +%endif + + +%install +%if 0%{bootstrap} +%mingw_make DESTDIR=%{buildroot} install-gcc +%else +%mingw_make_install DESTDIR=%{buildroot} +%endif + +# These files conflict with existing installed files. +rm -rf %{buildroot}%{_infodir} +rm -f %{buildroot}%{_libdir}/libiberty* +rm -f %{buildroot}%{_mandir}/man7/* +rm -rf %{buildroot}%{_datadir}/gcc-%{version}/python + +%if 0%{bootstrap} == 0 +# Move the DLL's manually to the correct location +mkdir -p %{buildroot}%{mingw32_bindir} +mv %{buildroot}%{_prefix}/%{mingw32_target}/lib/libgcc_s_dw2-1.dll \ +%if 0%{only_libssp} == 0 + %{buildroot}%{_prefix}/%{mingw32_target}/lib/libatomic-1.dll \ + %{buildroot}%{_prefix}/%{mingw32_target}/lib/libstdc++-6.dll \ + %{buildroot}%{_prefix}/%{mingw32_target}/lib/libobjc-4.dll \ + %{buildroot}%{_prefix}/%{mingw32_target}/lib/libgfortran-5.dll \ +%endif + %{buildroot}%{_prefix}/%{mingw32_target}/lib/libssp-0.dll \ + %{buildroot}%{_prefix}/%{mingw32_target}/lib/libquadmath-0.dll \ +%if 0%{enable_libgomp} + %{buildroot}%{_prefix}/%{mingw32_target}/lib/libgomp-1.dll \ +%endif + %{buildroot}%{mingw32_bindir} + +mkdir -p %{buildroot}%{mingw64_bindir} +mv %{buildroot}%{_prefix}/%{mingw64_target}/lib/libgcc_s_seh-1.dll \ +%if 0%{only_libssp} == 0 + %{buildroot}%{_prefix}/%{mingw64_target}/lib/libatomic-1.dll \ + %{buildroot}%{_prefix}/%{mingw64_target}/lib/libstdc++-6.dll \ + %{buildroot}%{_prefix}/%{mingw64_target}/lib/libobjc-4.dll \ + %{buildroot}%{_prefix}/%{mingw64_target}/lib/libgfortran-5.dll \ +%endif + %{buildroot}%{_prefix}/%{mingw64_target}/lib/libssp-0.dll \ + %{buildroot}%{_prefix}/%{mingw64_target}/lib/libquadmath-0.dll \ +%if 0%{enable_libgomp} + %{buildroot}%{_prefix}/%{mingw64_target}/lib/libgomp-1.dll \ +%endif + %{buildroot}%{mingw64_bindir} + +# Various import libraries are placed in the wrong folder +mkdir -p %{buildroot}%{mingw32_libdir} +mkdir -p %{buildroot}%{mingw64_libdir} +mv %{buildroot}%{_prefix}/%{mingw32_target}/lib/* %{buildroot}%{mingw32_libdir} +mv %{buildroot}%{_prefix}/%{mingw64_target}/lib/* %{buildroot}%{mingw64_libdir} + +# Don't want the *.la files. +find %{buildroot} -name '*.la' -delete + +%endif + +# For some reason there are wrapper libraries created named $target-$target-gcc-$tool +# Drop those files for now as this looks like a bug in GCC +rm -f %{buildroot}%{_bindir}/%{mingw32_target}-%{mingw32_target}-* +rm -f %{buildroot}%{_bindir}/%{mingw64_target}-%{mingw64_target}-* + +%if 0%{bootstrap} == 0 +# HACK symlink libssp dll over import lib, otherwise linking with -lssp failes for mysterious reasons +# Needed to build gdb and everything which adds -D_FORTIFY_SOURCES=... and -fstack-protector +ln -sf %{mingw32_bindir}/libssp-0.dll %{buildroot}%{mingw32_libdir}/libssp.dll.a +ln -sf %{mingw64_bindir}/libssp-0.dll %{buildroot}%{mingw64_libdir}/libssp.dll.a +%endif + + +%files -n mingw32-gcc +%{_bindir}/%{mingw32_target}-gcc +%{_bindir}/%{mingw32_target}-gcc-%{version} +%{_bindir}/%{mingw32_target}-gcc-ar +%{_bindir}/%{mingw32_target}-gcc-nm +%{_bindir}/%{mingw32_target}-gcc-ranlib +%{_bindir}/%{mingw32_target}-gcov +%{_bindir}/%{mingw32_target}-gcov-dump +%{_bindir}/%{mingw32_target}-gcov-tool +%dir %{_prefix}/lib/gcc/%{mingw32_target}/%{version} +%dir %{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include-fixed +%dir %{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include +%dir %{_prefix}/lib/gcc/%{mingw32_target}/%{version}/install-tools +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include-fixed/README +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include-fixed/*.h +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include/*.h +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/install-tools/* +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/collect2 +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/lto-wrapper +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/install-tools +%{_mandir}/man1/%{mingw32_target}-gcc.1* +%{_mandir}/man1/%{mingw32_target}-gcov.1* +%{_mandir}/man1/%{mingw32_target}-gcov-dump.1* +%{_mandir}/man1/%{mingw32_target}-gcov-tool.1* + +# Non-bootstrap files +%if 0%{bootstrap} == 0 +%{_bindir}/%{mingw32_target}-lto-dump +%if 0%{only_libssp} == 0 +%{mingw32_bindir}/libatomic-1.dll +%{mingw32_libdir}/libatomic.a +%{mingw32_libdir}/libatomic.dll.a +%{mingw32_libdir}/libstdc++fs.a +%endif +%{mingw32_bindir}/libgcc_s_dw2-1.dll +%{mingw32_bindir}/libssp-0.dll +%{mingw32_libdir}/libgcc_s.a +%{mingw32_libdir}/libssp.a +%{mingw32_libdir}/libssp.dll.a +%{mingw32_libdir}/libssp_nonshared.a +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/crtbegin.o +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/crtend.o +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/crtfastmath.o +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/libgcc.a +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/libgcc_eh.a +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/libgcov.a +%dir %{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include/ssp +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include/ssp/*.h +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/g++-mapper-server +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/lto1 +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/liblto_plugin.so* +%{_mandir}/man1/%{mingw32_target}-lto-dump.1* +%endif + +%files -n mingw64-gcc +%{_bindir}/%{mingw64_target}-gcc +%{_bindir}/%{mingw64_target}-gcc-%{version} +%{_bindir}/%{mingw64_target}-gcc-ar +%{_bindir}/%{mingw64_target}-gcc-nm +%{_bindir}/%{mingw64_target}-gcc-ranlib +%{_bindir}/%{mingw64_target}-gcov +%{_bindir}/%{mingw64_target}-gcov-dump +%{_bindir}/%{mingw64_target}-gcov-tool +%dir %{_prefix}/lib/gcc/%{mingw64_target}/%{version} +%dir %{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include-fixed +%dir %{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include +%dir %{_prefix}/lib/gcc/%{mingw64_target}/%{version}/install-tools +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include-fixed/README +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include-fixed/*.h +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include/*.h +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/install-tools/* +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/collect2 +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/lto-wrapper +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/install-tools +%{_mandir}/man1/%{mingw64_target}-gcc.1* +%{_mandir}/man1/%{mingw64_target}-gcov.1* +%{_mandir}/man1/%{mingw64_target}-gcov-dump.1* +%{_mandir}/man1/%{mingw64_target}-gcov-tool.1* + +# Non-bootstrap files +%if 0%{bootstrap} == 0 +%{_bindir}/%{mingw64_target}-lto-dump +%if 0%{only_libssp} == 0 +%{mingw64_bindir}/libatomic-1.dll +%{mingw64_libdir}/libatomic.a +%{mingw64_libdir}/libatomic.dll.a +%{mingw64_libdir}/libstdc++fs.a +%endif +%{mingw64_bindir}/libgcc_s_seh-1.dll +%{mingw64_bindir}/libssp-0.dll +%{mingw64_libdir}/libgcc_s.a +%{mingw64_libdir}/libssp.a +%{mingw64_libdir}/libssp.dll.a +%{mingw64_libdir}/libssp_nonshared.a + +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/crtbegin.o +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/crtend.o +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/crtfastmath.o +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/libgcc.a +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/libgcc_eh.a +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/libgcov.a +%dir %{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include/ssp +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include/ssp/*.h +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/g++-mapper-server +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/lto1 +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/liblto_plugin.so* +%{_mandir}/man1/%{mingw64_target}-lto-dump.1* +%endif + +%files -n mingw32-cpp +%{_bindir}/%{mingw32_target}-cpp +%{_mandir}/man1/%{mingw32_target}-cpp.1* +%dir %{_prefix}/lib/gcc/%{mingw32_target} +%dir %{_prefix}/lib/gcc/%{mingw32_target}/%{version} +%dir %{_libexecdir}/gcc/%{mingw32_target}/%{version} +%dir %{_libexecdir}/gcc/%{mingw32_target} +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/cc1 + +%files -n mingw64-cpp +%{_bindir}/%{mingw64_target}-cpp +%{_mandir}/man1/%{mingw64_target}-cpp.1* +%dir %{_prefix}/lib/gcc/%{mingw64_target} +%dir %{_prefix}/lib/gcc/%{mingw64_target}/%{version} +%dir %{_libexecdir}/gcc/%{mingw64_target}/%{version} +%dir %{_libexecdir}/gcc/%{mingw64_target} +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/cc1 + +%files -n mingw32-gcc-c++ +%{_bindir}/%{mingw32_target}-g++ +%{_bindir}/%{mingw32_target}-c++ +%{_mandir}/man1/%{mingw32_target}-g++.1* +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/cc1plus + +# Non-bootstrap files +%if 0%{bootstrap} == 0 +%if 0%{only_libssp} == 0 +%{mingw32_includedir}/c++/ +%{mingw32_bindir}/libstdc++-6.dll +%{mingw32_libdir}/libstdc++.a +%{mingw32_libdir}/libstdc++.dll.a +%{mingw32_libdir}/libstdc++.dll.a-gdb.py +%{mingw32_libdir}/libsupc++.a +%endif +%endif + +%files -n mingw64-gcc-c++ +%{_bindir}/%{mingw64_target}-g++ +%{_bindir}/%{mingw64_target}-c++ +%{_mandir}/man1/%{mingw64_target}-g++.1* +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/cc1plus + +# Non-bootstrap files +%if 0%{bootstrap} == 0 +%if 0%{only_libssp} == 0 +%{mingw64_includedir}/c++/ +%{mingw64_bindir}/libstdc++-6.dll +%{mingw64_libdir}/libstdc++.a +%{mingw64_libdir}/libstdc++.dll.a +%{mingw64_libdir}/libstdc++.dll.a-gdb.py +%{mingw64_libdir}/libsupc++.a +%endif +%endif + +%files -n mingw32-gcc-objc +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/cc1obj +%if 0%{bootstrap} == 0 +%if 0%{only_libssp} == 0 +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/include/objc/ +%{mingw32_bindir}/libobjc-4.dll +%{mingw32_libdir}/libobjc.a +%{mingw32_libdir}/libobjc.dll.a +%endif +%endif + +%files -n mingw64-gcc-objc +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/cc1obj +%if 0%{bootstrap} == 0 +%if 0%{only_libssp} == 0 +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/include/objc/ +%{mingw64_bindir}/libobjc-4.dll +%{mingw64_libdir}/libobjc.a +%{mingw64_libdir}/libobjc.dll.a +%endif +%endif + +%files -n mingw32-gcc-objc++ +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/cc1objplus + +%files -n mingw64-gcc-objc++ +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/cc1objplus + +%files -n mingw32-gcc-gfortran +%{_bindir}/%{mingw32_target}-gfortran +%{_mandir}/man1/%{mingw32_target}-gfortran.1* +%{_libexecdir}/gcc/%{mingw32_target}/%{version}/f951 +%if 0%{bootstrap} == 0 +%if 0%{only_libssp} == 0 +%{mingw32_bindir}/libgfortran-5.dll +%{mingw32_libdir}/libgfortran.a +%{mingw32_libdir}/libgfortran.dll.a +%{mingw32_libdir}/libgfortran.spec +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/libcaf_single.a +%endif +%{mingw32_bindir}/libquadmath-0.dll +%{mingw32_libdir}/libquadmath.a +%{mingw32_libdir}/libquadmath.dll.a +%{_prefix}/lib/gcc/%{mingw32_target}/%{version}/finclude +%endif + +%files -n mingw64-gcc-gfortran +%{_bindir}/%{mingw64_target}-gfortran +%{_mandir}/man1/%{mingw64_target}-gfortran.1* +%{_libexecdir}/gcc/%{mingw64_target}/%{version}/f951 +%if 0%{bootstrap} == 0 +%if 0%{only_libssp} == 0 +%{mingw64_bindir}/libgfortran-5.dll +%{mingw64_libdir}/libgfortran.a +%{mingw64_libdir}/libgfortran.dll.a +%{mingw64_libdir}/libgfortran.spec +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/libcaf_single.a +%endif +%{mingw64_bindir}/libquadmath-0.dll +%{mingw64_libdir}/libquadmath.a +%{mingw64_libdir}/libquadmath.dll.a +%{_prefix}/lib/gcc/%{mingw64_target}/%{version}/finclude +%endif + +%if 0%{enable_libgomp} +%files -n mingw32-libgomp +%{mingw32_bindir}/libgomp-1.dll +%{mingw32_libdir}/libgomp.a +%{mingw32_libdir}/libgomp.dll.a +%{mingw32_libdir}/libgomp.spec + +%files -n mingw64-libgomp +%{mingw64_bindir}/libgomp-1.dll +%{mingw64_libdir}/libgomp.a +%{mingw64_libdir}/libgomp.dll.a +%{mingw64_libdir}/libgomp.spec +%endif + + +%changelog +* Wed Sep 25 2024 yangfeng - 11.2.1-9 +- set bootstrap=0, only_libssp=0, enable_libgomp=0 + +* Tue Sep 24 2024 yangfeng - 11.2.1-8 +- set bootstrap=0, only_libssp=1, enable_libgomp=0 + +* Tue Sep 24 2024 yangfeng - 11.2.1-7 +- set bootstrap=1, only_libssp=0, enable_libgomp=0 + +* Tue Feb 27 2024 yinhongchang - 11.2.1-6 +- compile all modules of mingw-gcc + +* Fri Feb 23 2024 yinhongchang - 11.2.1-5 +- set only_libssp to 1 for compile libssp + +* Mon Feb 5 2024 yinhongchang - 11.2.1-4 +- update version to 11.2.1 + +* Thu Oct 22 2020 Zhiyi Weng - 9.2.1-8 +- set bootstrap to 0 + +* Thu Oct 22 2020 Zhiyi Weng - 9.2.1-7 +- Update to 9.2.1 + +* Fri Apr 3 2020 lingsheng - 8.3.0-4 +- Remove bugurl + +* Sat Feb 29 2020 Ling Yang - 8.3.0-3 +- Package Init +