From e1e2e047ace525b9f6d28e57af5fd64ddb2cad73 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sun, 16 Apr 2023 21:29:51 +0200 Subject: [PATCH] - updated to 9.5.0; more hacks to build with mingw32 5.4.x --- crossmingw32-gcc-buildsystem2.patch | 36 +++++++-------- crossmingw32-gcc.spec | 6 +-- gcc-mingw32.patch | 69 +++++++++++++++++++++++++++-- 3 files changed, 86 insertions(+), 25 deletions(-) diff --git a/crossmingw32-gcc-buildsystem2.patch b/crossmingw32-gcc-buildsystem2.patch index 3218ec7..b1df190 100644 --- a/crossmingw32-gcc-buildsystem2.patch +++ b/crossmingw32-gcc-buildsystem2.patch @@ -9,14 +9,14 @@ CFLAGS = @CFLAGS@ RANLIB = @RANLIB@ LN_S = @LN_S@ ---- gcc/libgcc/configure.org 2010-09-29 01:36:46.047000017 +0200 -+++ gcc/libgcc/configure 2010-09-29 01:40:00.929000003 +0200 -@@ -2687,6 +2687,7 @@ +--- gcc-9.5.0/libgcc/configure.orig 2023-04-15 23:24:15.271132715 +0200 ++++ gcc-9.5.0/libgcc/configure 2023-04-16 07:36:39.584410765 +0200 +@@ -3208,6 +3208,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } +CC="$CC -isystem `pwd`/../../sysroot/i386-mingw32/include -isystem `pwd`/../../sysroot/i386-mingw32/sys-include -B`pwd`/../../sysroot/i386-mingw32/lib/" - if test "${ac_cv_prog_CC+set}" = set; then : + if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else --- gcc/libiberty/Makefile.in.org 2010-04-29 23:53:50.429231967 +0200 @@ -30,19 +30,19 @@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ RANLIB = @RANLIB@ ---- gcc/libiberty/configure.org 2010-09-29 01:46:07.266000013 +0200 -+++ gcc/libiberty/configure 2010-09-29 01:46:35.758000014 +0200 -@@ -2789,6 +2789,7 @@ +--- gcc-9.5.0/libiberty/configure.orig 2023-04-15 23:24:15.307799183 +0200 ++++ gcc-9.5.0/libiberty/configure 2023-04-16 07:37:20.094191305 +0200 +@@ -2990,6 +2990,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } +CC="$CC -isystem `pwd`/../../sysroot/i386-mingw32/include -isystem `pwd`/../../sysroot/i386-mingw32/sys-include -B`pwd`/../../sysroot/i386-mingw32/lib/" - if test "${ac_cv_prog_CC+set}" = set; then : + if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else ---- gcc/libstdc++-v3/Makefile.in.org 2010-04-29 23:58:03.243106668 +0200 -+++ gcc/libstdc++-v3/Makefile.in 2010-04-29 23:57:34.857355967 +0200 -@@ -115,7 +115,7 @@ +--- gcc-9.5.0/libstdc++-v3/Makefile.in.orig 2022-05-27 09:21:13.311391084 +0200 ++++ gcc-9.5.0/libstdc++-v3/Makefile.in 2023-04-15 23:24:15.351132282 +0200 +@@ -197,7 +197,7 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASIC_FILE_CC = @BASIC_FILE_CC@ BASIC_FILE_H = @BASIC_FILE_H@ @@ -51,18 +51,18 @@ CCODECVT_CC = @CCODECVT_CC@ CCOLLATE_CC = @CCOLLATE_CC@ CCTYPE_CC = @CCTYPE_CC@ -@@ -133,7 +133,7 @@ +@@ -217,7 +217,7 @@ CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM CSTDIO_H = @CSTDIO_H@ CTIME_CC = @CTIME_CC@ CTIME_H = @CTIME_H@ -CXX = @CXX@ +override CXX = @CXX@ CXXCPP = @CXXCPP@ + CXXFILT = @CXXFILT@ CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ ---- gcc/libstdc++-v3/configure.org 2010-09-29 01:48:10.661000013 +0200 -+++ gcc/libstdc++-v3/configure 2010-09-29 01:51:34.583000014 +0200 -@@ -3498,6 +3498,7 @@ +--- gcc-9.5.0/libstdc++-v3/configure.orig 2022-05-27 09:21:13.335391201 +0200 ++++ gcc-9.5.0/libstdc++-v3/configure 2023-04-16 07:38:19.120538198 +0200 +@@ -3795,6 +3795,7 @@ fi save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-builtin" ac_ext=c @@ -70,12 +70,12 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -@@ -3507,6 +3508,8 @@ +@@ -3804,6 +3805,8 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } +CC="$CC -isystem `pwd`/../../sysroot/i386-mingw32/include -isystem `pwd`/../../sysroot/i386-mingw32/sys-include -B`pwd`/../../sysroot/i386-mingw32/lib/" +CXX="$CXX -isystem `pwd`/../../sysroot/i386-mingw32/include -isystem `pwd`/../../sysroot/i386-mingw32/sys-include -B`pwd`/../../sysroot/i386-mingw32/lib/" - if test "${ac_cv_prog_CC+set}" = set; then : + if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else diff --git a/crossmingw32-gcc.spec b/crossmingw32-gcc.spec index 673d0a8..24c88fd 100644 --- a/crossmingw32-gcc.spec +++ b/crossmingw32-gcc.spec @@ -13,13 +13,13 @@ Summary(pl.UTF-8): Skrośne narzędzia programistyczne GNU dla MinGW32 - gcc Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - MinGW32 gcc Summary(tr.UTF-8): GNU geliştirme araçları - MinGW32 gcc Name: crossmingw32-gcc -Version: 8.5.0 -Release: 2 +Version: 9.5.0 +Release: 1 Epoch: 1 License: GPL v3+ Group: Development/Languages Source0: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz -# Source0-md5: 0c1f625768840187ef3b10adebe8e3b0 +# Source0-md5: 34cd76facb562835ff5faca81fead17e %define w32api_ver 5.4.2 #Source1Download: https://osdn.net/projects/mingw/releases/ Source1: https://osdn.net/projects/mingw/downloads/74926/w32api-%{w32api_ver}-mingw32-dev.tar.xz diff --git a/gcc-mingw32.patch b/gcc-mingw32.patch index 5450bfa..5c3c6e8 100644 --- a/gcc-mingw32.patch +++ b/gcc-mingw32.patch @@ -10,10 +10,10 @@ /* INTEGER FUNCTION CHMOD (NAME, MODE) ---- gcc-8.5.0/libstdc++-v3/libsupc++/new_opa.cc.orig 2022-02-16 06:33:02.466274733 +0100 -+++ gcc-8.5.0/libstdc++-v3/libsupc++/new_opa.cc 2022-02-16 06:24:22.683854869 +0100 -@@ -28,10 +28,13 @@ - #include +--- gcc-9.5.0/libstdc++-v3/libsupc++/new_opa.cc.orig 2023-04-15 22:04:10.903826873 +0200 ++++ gcc-9.5.0/libstdc++-v3/libsupc++/new_opa.cc 2023-04-15 22:58:08.356288088 +0200 +@@ -29,10 +29,13 @@ + #include #include "new" -#if !_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE__ALIGNED_MALLOC \ @@ -47,3 +47,64 @@ // The sized deletes are defined in other files. #pragma GCC diagnostic ignored "-Wsized-deallocation" +--- gcc-9.5.0/libstdc++-v3/src/filesystem/ops-common.h.orig 2022-05-27 09:21:13.451391769 +0200 ++++ gcc-9.5.0/libstdc++-v3/src/filesystem/ops-common.h 2023-04-16 15:41:54.130017065 +0200 +@@ -106,7 +106,7 @@ namespace __gnu_posix + inline int rename(const wchar_t* oldname, const wchar_t* newname) + { return _wrename(oldname, newname); } + +- inline int truncate(const wchar_t* path, _off64_t length) ++ inline int truncate(const wchar_t* path, __off64_t length) + { + const int fd = ::_wopen(path, _O_BINARY|_O_RDWR); + if (fd == -1) +--- gcc-9.5.0/libstdc++-v3/config/os/mingw32/error_constants.h.orig 2022-05-27 09:21:13.331391181 +0200 ++++ gcc-9.5.0/libstdc++-v3/config/os/mingw32/error_constants.h 2023-04-16 18:55:43.337016242 +0200 +@@ -33,6 +33,18 @@ + #include + #include + ++#ifndef EOVERFLOW ++#define EOVERFLOW ERANGE ++#endif ++ ++#ifndef ELOOP ++#define ELOOP ERANGE ++#endif ++ ++#ifndef ENOTSUP ++#define ENOTSUP ENOSYS ++#endif ++ + namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION +--- gcc-9.5.0/libstdc++-v3/src/c++11/system_error.cc.orig 2022-05-27 09:21:13.447391751 +0200 ++++ gcc-9.5.0/libstdc++-v3/src/c++11/system_error.cc 2023-04-16 20:09:05.676500055 +0200 +@@ -168,7 +168,7 @@ namespace + #ifdef EISDIR + case EISDIR: + #endif +-#ifdef ELOOP ++#if defined(ELOOP) && (ELOOP != ERANGE) + case ELOOP: + #endif + #ifdef EMFILE +@@ -253,7 +253,7 @@ namespace + #ifdef ENOTSOCK + case ENOTSOCK: + #endif +-#ifdef ENOTSUP ++#if defined (ENOTSUP) && (ENOTSUP != ENOSYS) + case ENOTSUP: + #endif + #ifdef ENOTTY +@@ -265,7 +265,7 @@ namespace + #if defined EOPNOTSUPP && (!defined ENOTSUP || EOPNOTSUPP != ENOTSUP) + case EOPNOTSUPP: + #endif +-#ifdef EOVERFLOW ++#if defined(EOVERFLOW) && (EOVERFLOW != ERANGE) + case EOVERFLOW: + #endif + #ifdef EOWNERDEAD -- 2.44.0