转换LFS仓库为普通仓库

This commit is contained in:
Jiayi Yin 2025-05-18 19:54:29 +00:00
commit a235e9a900
4 changed files with 803 additions and 0 deletions

View File

@ -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 <stdio.h>
+#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;

BIN
gcc-11.2.1-20211019.tar.xz Normal file

Binary file not shown.

42
mingw-gcc-config.patch Normal file
View File

@ -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

721
mingw-gcc.spec Normal file
View File

@ -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<yangfeng@kylinsec.com.cn> - 11.2.1-9
- set bootstrap=0, only_libssp=0, enable_libgomp=0
* Tue Sep 24 2024 yangfeng<yangfeng@kylinsec.com.cn> - 11.2.1-8
- set bootstrap=0, only_libssp=1, enable_libgomp=0
* Tue Sep 24 2024 yangfeng<yangfeng@kylinsec.com.cn> - 11.2.1-7
- set bootstrap=1, only_libssp=0, enable_libgomp=0
* Tue Feb 27 2024 yinhongchang<yinhongchang@kylinsec.com.cn> - 11.2.1-6
- compile all modules of mingw-gcc
* Fri Feb 23 2024 yinhongchang<yinhongchang@kylinsec.com.cn> - 11.2.1-5
- set only_libssp to 1 for compile libssp
* Mon Feb 5 2024 yinhongchang<yinhongchang@kylinsec.com.cn> - 11.2.1-4
- update version to 11.2.1
* Thu Oct 22 2020 Zhiyi Weng <zhiyi@iscas.ac.cn> - 9.2.1-8
- set bootstrap to 0
* Thu Oct 22 2020 Zhiyi Weng <zhiyi@iscas.ac.cn> - 9.2.1-7
- Update to 9.2.1
* Fri Apr 3 2020 lingsheng <lingsheng@huawei.com> - 8.3.0-4
- Remove bugurl
* Sat Feb 29 2020 Ling Yang <lingyang2@huawei.com> - 8.3.0-3
- Package Init