[packages/crossmingw64-gcc] - updated to 12.4.0

qboosh qboosh at pld-linux.org
Mon Apr 28 20:13:19 CEST 2025


commit abc6e6d45fd873b10fdfea8d73113d72c5906e4c
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Apr 28 19:58:52 2025 +0200

    - updated to 12.4.0

 crossmingw64-gcc.spec | 12 ++++++++---
 gcc-mingw-dirs.patch  |  8 +++----
 gcc-mingw64.patch     | 58 ++++++++++++++++++++++++++++++++++++++++++++++-----
 3 files changed, 66 insertions(+), 12 deletions(-)
---
diff --git a/crossmingw64-gcc.spec b/crossmingw64-gcc.spec
index 357fc1b..9c86011 100644
--- a/crossmingw64-gcc.spec
+++ b/crossmingw64-gcc.spec
@@ -3,6 +3,7 @@
 %bcond_with	bootstrap	# bootstrap build (only C compiler with static runtime)
 %bcond_with	ada		# Ada language support (doesn't build for w64-mingw32)
 %bcond_without	d		# D language support
+# go is not supported for mingw
 #
 %if %{with bootstrap}
 %undefine	with_ada
@@ -15,18 +16,19 @@ Summary(pl.UTF-8):	Skrośne narzędzia programistyczne GNU dla MinGW-W64 - gcc
 Summary(pt_BR.UTF-8):	Utilitários para desenvolvimento de binários da GNU - MinGW-W64 gcc
 Summary(tr.UTF-8):	GNU geliştirme araçları - MinGW-W64 gcc
 Name:		crossmingw64-gcc
-Version:	11.5.0
+Version:	12.4.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:	03473f26c87e05e789a32208f1fe4491
+# Source0-md5:	fd7779aee878db67456575922281fa71
 # svn co https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/stable/v2.x/mingw-w64-crt mingw64-crt
 %define		_rev	5515
 Source1:	mingw64-crt.tar.xz
 # Source1-md5:	bf9051e7e4deb445e9e8877ca68211e1
-#Patch0:		gcc-branch.diff
+Patch0:		gcc-branch.diff
+# Patch0-md5:	57034537c40d4d70828540f9c0bc2cf3
 Patch1:		gcc-mingw-dirs.patch
 Patch2:		gcc-mingw64.patch
 URL:		https://www.mingw-w64.org/
@@ -37,6 +39,8 @@ BuildRequires:	crossmingw64-binutils >= 2.30
 %{!?with_bootstrap:BuildRequires:	crossmingw64-gcc}
 BuildRequires:	crossmingw64-headers
 BuildRequires:	flex >= 2.5.4
+%{?with_ada:BuildRequires:	gcc-ada}
+%{?with_d:BuildRequires:	gcc-d >= 6:11}
 BuildRequires:	gettext-tools >= 0.14.5
 BuildRequires:	gmp-devel >= 4.3.2
 BuildRequires:	isl-devel >= 0.15
@@ -579,6 +583,8 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/avx512dqintrin.h
 %{gcclibdir}/include/avx512erintrin.h
 %{gcclibdir}/include/avx512fintrin.h
+%{gcclibdir}/include/avx512fp16intrin.h
+%{gcclibdir}/include/avx512fp16vlintrin.h
 %{gcclibdir}/include/avx512ifmaintrin.h
 %{gcclibdir}/include/avx512ifmavlintrin.h
 %{gcclibdir}/include/avx512pfintrin.h
diff --git a/gcc-mingw-dirs.patch b/gcc-mingw-dirs.patch
index 702c9bf..fe2e05b 100644
--- a/gcc-mingw-dirs.patch
+++ b/gcc-mingw-dirs.patch
@@ -18,14 +18,14 @@
  
  /* Output STRING, a string representing a filename, to FILE.
     We canonicalize it to be in Unix format (backslashes are replaced
---- gcc-10.4.0/gcc/config.gcc.orig	2023-06-28 06:17:39.251234129 +0200
-+++ gcc-10.4.0/gcc/config.gcc	2023-06-28 06:20:01.677654209 +0200
-@@ -2200,7 +2200,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
+--- gcc-12.4.0/gcc/config.gcc.orig	2024-06-20 10:08:06.000000000 +0200
++++ gcc-12.4.0/gcc/config.gcc	2025-04-28 06:17:40.483015627 +0200
+@@ -2212,7 +2212,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
  			tmake_file="${tmake_file} i386/t-mingw-w32"
  			;;
  	esac
 -        native_system_header_dir=/mingw/include
 +        native_system_header_dir=/include
- 	target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
+ 	target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
  	extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
  	case ${target} in
diff --git a/gcc-mingw64.patch b/gcc-mingw64.patch
index 424a9ae..c2570db 100644
--- a/gcc-mingw64.patch
+++ b/gcc-mingw64.patch
@@ -152,9 +152,33 @@
     };
  
  _GLIBCXX_END_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
+--- gcc-12.4.0/libstdc++-v3/src/c++11/system_error.cc.orig	2024-06-20 10:08:10.000000000 +0200
++++ gcc-12.4.0/libstdc++-v3/src/c++11/system_error.cc	2025-04-27 19:31:06.902992927 +0200
+@@ -153,7 +153,11 @@ namespace
+ 	X (CANNOT_MAKE,			EPERM);
+ 	X (CHILD_NOT_COMPLETE,		EBUSY);
+ 	X (COMMITMENT_LIMIT,		EAGAIN);
++#ifdef ECONNREFUSED
+ 	X (CONNECTION_REFUSED,		ECONNREFUSED);
++#else
++	X (CONNECTION_REFUSED,		WSAECONNREFUSED);
++#endif
+ 	X (CRC,				EIO);
+ 	X (DEVICE_DOOR_OPEN,		EIO);
+ 	X (DEVICE_IN_USE,		EAGAIN);
+@@ -200,7 +204,11 @@ namespace
+ 	X (MAX_THRDS_REACHED,		EAGAIN);
+ 	X (META_EXPANSION_TOO_LONG,	EINVAL);
+ 	X (MOD_NOT_FOUND,		ENOENT);
++#ifdef EMSGSIZE
+ 	X (MORE_DATA,			EMSGSIZE);
++#else
++	X (MORE_DATA,			WSAEMSGSIZE);
++#endif
+ 	X (NEGATIVE_SEEK,		EINVAL);
+ 	X (NETNAME_DELETED,		ENOENT);
+ 	X (NOACCESS,			EFAULT);
+@@ -355,7 +363,7 @@ namespace
  #ifdef EISDIR
        case EISDIR:
  #endif
@@ -163,7 +187,7 @@
        case ELOOP:
  #endif
  #ifdef EMFILE
-@@ -265,7 +265,7 @@ namespace
+@@ -453,10 +461,10 @@ namespace
  #if defined EOPNOTSUPP && (!defined ENOTSUP || EOPNOTSUPP != ENOTSUP)
        case EOPNOTSUPP:
  #endif
@@ -171,4 +195,28 @@
 +#if defined(EOVERFLOW) && (EOVERFLOW != ERANGE)
        case EOVERFLOW:
  #endif
- #ifdef EOWNERDEAD
+-#ifdef EOWNERDEAD
++#if defined(EOWNERDEAD) && (!defined EILSEQ || EOWNERDEAD != EILSEQ)
+       case EOWNERDEAD:
+ #endif
+ #ifdef EPERM
+--- gcc-12.4.0/libstdc++-v3/src/c++17/fast_float/fast_float.h.orig	2024-06-20 10:08:10.000000000 +0200
++++ gcc-12.4.0/libstdc++-v3/src/c++17/fast_float/fast_float.h	2025-04-27 19:42:34.869265894 +0200
+@@ -120,7 +120,7 @@ from_chars_result from_chars_advanced(co
+   #endif
+ #endif
+ 
+-#if ((defined(_WIN32) || defined(_WIN64)) && !defined(__clang__))
++#if ((defined(_WIN32) || defined(_WIN64)) && defined(_MSC_VER) && !defined(__clang__))
+ #include <intrin.h>
+ #endif
+ 
+@@ -275,7 +275,7 @@ fastfloat_really_inline value128 full_mu
+   // ARM64 has native support for 64-bit multiplications, no need to emulate
+   answer.high = __umulh(a, b);
+   answer.low = a * b;
+-#elif defined(FASTFLOAT_32BIT) || (defined(_WIN64) && !defined(__clang__))
++#elif defined(FASTFLOAT_32BIT) || (defined(_WIN64) && defined(_MSC_VER) && !defined(__clang__))
+   answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64
+ #elif defined(FASTFLOAT_64BIT)
+   __uint128_t r = ((__uint128_t)a) * b;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/crossmingw64-gcc.git/commitdiff/abc6e6d45fd873b10fdfea8d73113d72c5906e4c



More information about the pld-cvs-commit mailing list