转换LFS仓库为普通仓库
This commit is contained in:
commit
a235e9a900
40
0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch
Normal file
40
0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch
Normal 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
BIN
gcc-11.2.1-20211019.tar.xz
Normal file
Binary file not shown.
42
mingw-gcc-config.patch
Normal file
42
mingw-gcc-config.patch
Normal 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
721
mingw-gcc.spec
Normal 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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user