Authentication-Results: name.execsw.org; dkim=pass (1024-bit key) header.d=netbsd.org header.i=@netbsd.org header.b=l+oo/IT8; dkim=pass (1024-bit key) header.d=netbsd.org header.i=@netbsd.org header.b=xoGEX37A Received: by mail.netbsd.org (Postfix, from userid 605) id 6083784E57; Mon, 1 Apr 2024 14:34:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org; s=20240131; t=1711982043; bh=7vcPeQSyK1iVDhzZPgUatW7z9mpylacDrfyvpO3J4cQ=; h=Date:From:Subject:To:Reply-To:List-Id:List-Unsubscribe; b=l+oo/IT8WKKQS9sy7fpgY6sN0ZjihMAZqQgcR/seJAx11Ah5MfDLPI2bF1hEhELbU eeuseAcynrcq7wfPSo4LiN+pNCkQNEcafa10Zv2TclP0VTkSfOI5nqbUBcM/8Ozr1+ 6eDBcS4vLf2T5aBrXKhTAb62y94e6JX7kmK2Vlxg= Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 4EBB484D82 for ; Mon, 1 Apr 2024 14:34:02 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Authentication-Results: mail.netbsd.org (amavisd-new); dkim=pass (1024-bit key) header.d=netbsd.org Received: from mail.netbsd.org ([IPv6:::1]) by localhost (mail.netbsd.org [IPv6:::1]) (amavisd-new, port 10025) with ESMTP id L7J6zMFDjbVR for ; Mon, 1 Apr 2024 14:33:58 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.netbsd.org [199.233.217.197]) by mail.netbsd.org (Postfix) with ESMTP id CB07F84CC9 for ; Mon, 1 Apr 2024 14:33:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org; s=20240131; t=1711982038; bh=7vcPeQSyK1iVDhzZPgUatW7z9mpylacDrfyvpO3J4cQ=; h=Date:From:Subject:To:Reply-To; b=xoGEX37AOW83xrBAUGBXE2mfQumsHKDyeCZVQ6pkcXZCHODZ+wqGwiPTptKWfsNHT TyA14+zzDzKKxbPqKU08CrgQ4YysW87FpU6VvPOSyjYsK+MByQczG34s2k2MM1BYPm MZrqfNTlLAPP0Zer2ejUAGgV4PNmpN1iP+tsgGH8= Received: by cvs.NetBSD.org (Postfix, from userid 500) id BAA4FFA2C; Mon, 1 Apr 2024 14:33:58 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_171198203852930" MIME-Version: 1.0 Date: Mon, 1 Apr 2024 14:33:58 +0000 From: "Jonathan Schleifer" Subject: CVS commit: pkgsrc/lang/gcc10 To: pkgsrc-changes@NetBSD.org Reply-To: js@netbsd.org X-Mailer: log_accum Message-Id: <20240401143358.BAA4FFA2C@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_171198203852930 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: js Date: Mon Apr 1 14:33:58 UTC 2024 Modified Files: pkgsrc/lang/gcc10: Makefile Makefile.common distinfo pkgsrc/lang/gcc10/patches: patch-gcc_Makefile.in patch-gcc_config.gcc patch-gcc_plugin.c patch-libgcc_config.host patch-libgcc_crtstuff.c patch-libquadmath_printf_quadmath-printf.c patch-libquadmath_strtod_strtod__l.c Added Files: pkgsrc/lang/gcc10/patches: patch-gcc_opts-common.c patch-gcc_opts-jobserver.h patch-gmp_gen-sieve.c patch-gmp_mpn_generic_compute_powtab.c patch-gmp_mpz_millerrabin.c patch-gmp_mpz_nextprime.c patch-gmp_mpz_primorial_ui.c patch-gmp_primesieve.c patch-include_plugin-api.h patch-libgfortran_intrinsics_execute_command_line.c patch-libgfortran_intrinsics_string_intrinsics_inc.c patch-libiberty_pex-unix.c patch-libobjc_objc_runtime.h patch-libquadmath_printf_printf_fphex.c patch-libstdc++-v3_include_bits_std_abs.h patch-libstdc++-v3_include_bits_stl_function.h patch-libstdc++-v3_include_c_global_cmath patch-libstdc++-v3_include_c_global_cstring patch-libstdc++-v3_include_c_global_cwchar patch-libstdc++-v3_libsupc++_cxxabi.h patch-libstdc++-v3_libsupc++_cxxabi_init_exception.h patch-libstdc++-v3_src_c++11_system_error.cc Log Message: Port lang/gcc10 to QNX With this, there is finally a somewhat modern compiler for QNX. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 pkgsrc/lang/gcc10/Makefile cvs rdiff -u -r1.7 -r1.8 pkgsrc/lang/gcc10/Makefile.common cvs rdiff -u -r1.16 -r1.17 pkgsrc/lang/gcc10/distinfo cvs rdiff -u -r1.1 -r1.2 pkgsrc/lang/gcc10/patches/patch-gcc_Makefile.in \ pkgsrc/lang/gcc10/patches/patch-gcc_plugin.c \ pkgsrc/lang/gcc10/patches/patch-libgcc_crtstuff.c \ pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_quadmath-printf.c \ pkgsrc/lang/gcc10/patches/patch-libquadmath_strtod_strtod__l.c cvs rdiff -u -r1.4 -r1.5 pkgsrc/lang/gcc10/patches/patch-gcc_config.gcc cvs rdiff -u -r0 -r1.1 pkgsrc/lang/gcc10/patches/patch-gcc_opts-common.c \ pkgsrc/lang/gcc10/patches/patch-gcc_opts-jobserver.h \ pkgsrc/lang/gcc10/patches/patch-gmp_gen-sieve.c \ pkgsrc/lang/gcc10/patches/patch-gmp_mpn_generic_compute_powtab.c \ pkgsrc/lang/gcc10/patches/patch-gmp_mpz_millerrabin.c \ pkgsrc/lang/gcc10/patches/patch-gmp_mpz_nextprime.c \ pkgsrc/lang/gcc10/patches/patch-gmp_mpz_primorial_ui.c \ pkgsrc/lang/gcc10/patches/patch-gmp_primesieve.c \ pkgsrc/lang/gcc10/patches/patch-include_plugin-api.h \ pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_execute_command_line.c \ pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_string_intrinsics_inc.c \ pkgsrc/lang/gcc10/patches/patch-libiberty_pex-unix.c \ pkgsrc/lang/gcc10/patches/patch-libobjc_objc_runtime.h \ pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_printf_fphex.c \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_std_abs.h \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_stl_function.h \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cmath \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cstring \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cwchar \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi.h \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi_init_exception.h \ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_src_c++11_system_error.cc cvs rdiff -u -r1.2 -r1.3 pkgsrc/lang/gcc10/patches/patch-libgcc_config.host Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_171198203852930 Content-Disposition: inline Content-Length: 44261 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/lang/gcc10/Makefile diff -u pkgsrc/lang/gcc10/Makefile:1.22 pkgsrc/lang/gcc10/Makefile:1.23 --- pkgsrc/lang/gcc10/Makefile:1.22 Sat Jun 3 13:22:04 2023 +++ pkgsrc/lang/gcc10/Makefile Mon Apr 1 14:33:57 2024 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.22 2023/06/03 13:22:04 riastradh Exp $ +# $NetBSD: Makefile,v 1.23 2024/04/01 14:33:57 js Exp $ PKGNAME= ${GCC_PKGNAME}-${GCC10_DIST_VERSION} ## When bumping the PKGREVISION of this package the PKGREVISION of @@ -28,7 +28,8 @@ BUILDLINK_TRANSFORM+= rm:-stdlib=libc++ # Disable fixincludes on SmartOS, header changes result in broken includes # being generated, see https://github.com/joyent/pkgsrc-legacy/issues/270 -.if ${OS_VARIANT} == "SmartOS" +# Same on QNX. +.if ${OS_VARIANT} == "SmartOS" || ${OPSYS} == "QNX" SUBST_CLASSES+= fixinc SUBST_STAGE.fixinc= pre-configure SUBST_FILES.fixinc= gcc/Makefile.in @@ -48,6 +49,11 @@ SUBST_SED.libstdc= -e 's,libtool_VERSION CONFIGURE_ARGS+= --enable-libssp .endif +CONFIGURE_ENV.QNX+= ACCEPT_INFERIOR_RM_PROGRAM=yes +# Make invokes further configure scripts +MAKE_ENV.QNX+= ACCEPT_INFERIOR_RM_PROGRAM=yes +MAKE_ENV.QNX+= GENAUTOMATA_LDFLAGS="-Wl,--stack,10000000" + ## For target librarys and libjava programs. CONFIGURE_ENV+= LDFLAGS_FOR_TARGET=${LDFLAGS_FOR_TARGET:Q} Index: pkgsrc/lang/gcc10/Makefile.common diff -u pkgsrc/lang/gcc10/Makefile.common:1.7 pkgsrc/lang/gcc10/Makefile.common:1.8 --- pkgsrc/lang/gcc10/Makefile.common:1.7 Tue Aug 29 09:48:46 2023 +++ pkgsrc/lang/gcc10/Makefile.common Mon Apr 1 14:33:57 2024 @@ -1,10 +1,11 @@ -# $NetBSD: Makefile.common,v 1.7 2023/08/29 09:48:46 nia Exp $ +# $NetBSD: Makefile.common,v 1.8 2024/04/01 14:33:57 js Exp $ # used by lang/gcc10-libjit/Makefile GCC_PKGNAME= gcc10 .include "version.mk" DISTNAME= gcc-${GCC10_DIST_VERSION} +PKGREVISION= 1 CATEGORIES= lang MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC10_DIST_VERSION}/} EXTRACT_SUFX= .tar.xz @@ -82,7 +83,7 @@ MAKE_ENV.NetBSD+= ac_cv_func_newlocale=n MAKE_ENV.NetBSD+= ac_cv_func_uselocale=no MAKE_ENV.SunOS+= ac_cv_func_mkostemp=no -.if !empty(PKGSRC_COMPILER:Mclang) || ${OPSYS} == "DragonFly" +.if !empty(PKGSRC_COMPILER:Mclang) || ${OPSYS} == "DragonFly" || ${OPSYS} == "QNX" CONFIGURE_ARGS+= --disable-bootstrap .endif Index: pkgsrc/lang/gcc10/distinfo diff -u pkgsrc/lang/gcc10/distinfo:1.16 pkgsrc/lang/gcc10/distinfo:1.17 --- pkgsrc/lang/gcc10/distinfo:1.16 Tue Sep 5 16:54:19 2023 +++ pkgsrc/lang/gcc10/distinfo Mon Apr 1 14:33:57 2024 @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.16 2023/09/05 16:54:19 vins Exp $ +$NetBSD: distinfo,v 1.17 2024/04/01 14:33:57 js Exp $ BLAKE2s (gcc-10.5.0.tar.xz) = af4a8b262d9d4e534e8e1c311897e68e7d64f147ad1eed42e77f9674da188bf3 SHA512 (gcc-10.5.0.tar.xz) = d86dbc18b978771531f4039465e7eb7c19845bf607dc513c97abf8e45ffe1086a99d98f83dfb7b37204af22431574186de9d5ff80c8c3c3a98dbe3983195bffd @@ -8,8 +8,8 @@ SHA512 (isl-0.16.1.tar.bz2) = c188667a84 Size (isl-0.16.1.tar.bz2) = 1626446 bytes SHA1 (patch-contrib_download__prerequisites) = 9cdcde21ab174052911447d20762ddfd40aa8791 SHA1 (patch-fixincludes_inclhack.def) = 7b00974d3f52a8364190a607f52a5d7e8a6db41a -SHA1 (patch-gcc_Makefile.in) = c0f97c75ba1d37eae894141edd58bb36b734f651 -SHA1 (patch-gcc_config.gcc) = 8729fc44778fb94856cd3861a440cfdf9c962214 +SHA1 (patch-gcc_Makefile.in) = a47571d8340702d1a86d0dfb7df654280c6a6ee6 +SHA1 (patch-gcc_config.gcc) = 4767d5b16794f4485879ed10e172cb2f86bc0777 SHA1 (patch-gcc_config.host) = 8920ce841f6088b365c9b590e3ea9535bd880b40 SHA1 (patch-gcc_config_aarch64_aarch64-builtins.c) = 87185f5c2e2dbe4195cb19fe6213d2d616d5519b SHA1 (patch-gcc_config_aarch64_aarch64-netbsd.h) = abf19e2445bce1773162bddef16cd7f41eb36827 @@ -23,18 +23,40 @@ SHA1 (patch-gcc_config_sparc_sparc.c) = SHA1 (patch-gcc_configure) = 6a2d8eeeed2bf08c3c81291178e669dc91c913ce SHA1 (patch-gcc_ggc-common.c) = 3e325767922ab7d2079fdb9a3d6b6aa531a2fea5 SHA1 (patch-gcc_lto_lto.c) = 7bd85ac8ade76a28c394f6fbe5d495f91824f79f -SHA1 (patch-gcc_plugin.c) = 7a7ebc6650fe327fa7be1f7a4d26e8edc7597fcf +SHA1 (patch-gcc_opts-common.c) = 8cfb8e50a8690b1094449f4eb2d278ddeeb4b633 +SHA1 (patch-gcc_opts-jobserver.h) = 7206af8d26fa773ce1df9234ee5cdd4afcc80918 +SHA1 (patch-gcc_plugin.c) = fe897fa051c5a1e69af423c354a07baa7332043e SHA1 (patch-gcc_targhooks.c) = b28d8a9696d07bbfb00b7d8c55193ba99447ff1d +SHA1 (patch-gmp_gen-sieve.c) = 7e95627a7f46e9db965de5620999c7bdc6ef6606 +SHA1 (patch-gmp_mpn_generic_compute_powtab.c) = 2301acc51d23bb5558360f133c037a39dec2bd7f +SHA1 (patch-gmp_mpz_millerrabin.c) = dc92fc81042028ffa1722a85cf42f225bee32cd5 +SHA1 (patch-gmp_mpz_nextprime.c) = 12d7ba775972bf8ef1501131dbbb4bffeb4b0214 +SHA1 (patch-gmp_mpz_primorial_ui.c) = 973d4faadb27bb353bf68f28fd76a5bf0d6315fb +SHA1 (patch-gmp_primesieve.c) = 3477e4de710bc1eb4297d53e54dc7173cf961217 +SHA1 (patch-include_plugin-api.h) = f39ef61b50b08daf85872ce2764877f5bc32779d SHA1 (patch-isl_configure) = 5523c76d95b229b3cd25461b4c2b7af24bf2534e SHA1 (patch-libffi_configure) = 22006b20d7f655e2455a7ad613d676703b6c1ccc SHA1 (patch-libffi_testsuite_libffi.call_float2.c) = 27b84a11378fb648dfaad0c70abedd77a0a1c1a8 -SHA1 (patch-libgcc_config.host) = d40d4d08c807eeff98cc246d1ea756b5b2c749b0 -SHA1 (patch-libgcc_crtstuff.c) = a16d465039de00c195cf0694560140a9c38f3a25 +SHA1 (patch-libgcc_config.host) = 1dda38390749c8727281099d86d763e1896a54b1 +SHA1 (patch-libgcc_crtstuff.c) = 38d03a3b417aa3116986641f0f7b595166206623 +SHA1 (patch-libgfortran_intrinsics_execute_command_line.c) = 05b554ffce113efa6b92cae1dfeda6dfefeed92c +SHA1 (patch-libgfortran_intrinsics_string_intrinsics_inc.c) = 2c027c7bd318342c0498d46f9712a55a86ab76c7 SHA1 (patch-libgfortran_io_format.c) = 9bbc5e4f6277bdec785b3690fd08259939a2aa1a SHA1 (patch-libgfortran_io_io.h) = d44676239a7f45e42054d24bd5224f43c20055c0 SHA1 (patch-libgfortran_io_list__read.c) = 589cdb8dcd180b781ededc086e8775224fca5779 SHA1 (patch-libgfortran_io_read.c) = cf21493396d07a5e8ad0dfb70a8d25a11482fc98 SHA1 (patch-libgfortran_runtime_environ.c) = c7217704a00f4c0314bbc1838ac6fc966cc854d0 -SHA1 (patch-libquadmath_printf_quadmath-printf.c) = 78e09f1e6d61ee57cee83275093cf46b2335d204 -SHA1 (patch-libquadmath_strtod_strtod__l.c) = 6142c10d34174174cce7f06c37eab04dc431b2dc +SHA1 (patch-libiberty_pex-unix.c) = 52896635b2578e8338a82ad3a3e9fd4d911c8489 +SHA1 (patch-libobjc_objc_runtime.h) = 420137482a6e3fa1f9dc4196e60dfde47a80f68a +SHA1 (patch-libquadmath_printf_printf_fphex.c) = 4e3927bb2ba9013e1ef69e38d0481c930b77a2fc +SHA1 (patch-libquadmath_printf_quadmath-printf.c) = 9c862bd2e07f8724646896a9f93bb8bb15bb4185 +SHA1 (patch-libquadmath_strtod_strtod__l.c) = 1a3a419218fb260c1c4a0ed08f5a72bde683d039 +SHA1 (patch-libstdc++-v3_include_bits_std_abs.h) = 2a32b52dc2d958085525461bd6da0a7b299ee09d +SHA1 (patch-libstdc++-v3_include_bits_stl_function.h) = 2757a988fb0a19825abb9963dc236effa9e3ea80 +SHA1 (patch-libstdc++-v3_include_c_global_cmath) = 24ec0941fcad205ce090b969a90ce5e85e235775 +SHA1 (patch-libstdc++-v3_include_c_global_cstring) = 0a87e7939448957bb352d8a50d5d3cb07f2f9a5d +SHA1 (patch-libstdc++-v3_include_c_global_cwchar) = 9408c1876183fa3f9d4440acdc96217c8a47ed87 +SHA1 (patch-libstdc++-v3_libsupc++_cxxabi.h) = 3bf8c2c8528f9374d157fa47e8ad0d13fc16b8a4 +SHA1 (patch-libstdc++-v3_libsupc++_cxxabi_init_exception.h) = 260c4af26e88e0015f54b04910cf91dd2ee8cb5f SHA1 (patch-libstdc++-v3_libsupc++_new__opa.cc) = 4183b00a5ee6e61524da4755c825a0c08fd01ed6 +SHA1 (patch-libstdc++-v3_src_c++11_system_error.cc) = 2c4b5326f4a4f518b202055aa3fbcc76c27f51dd Index: pkgsrc/lang/gcc10/patches/patch-gcc_Makefile.in diff -u pkgsrc/lang/gcc10/patches/patch-gcc_Makefile.in:1.1 pkgsrc/lang/gcc10/patches/patch-gcc_Makefile.in:1.2 --- pkgsrc/lang/gcc10/patches/patch-gcc_Makefile.in:1.1 Sun May 10 15:02:44 2020 +++ pkgsrc/lang/gcc10/patches/patch-gcc_Makefile.in Mon Apr 1 14:33:57 2024 @@ -1,11 +1,13 @@ -$NetBSD: patch-gcc_Makefile.in,v 1.1 2020/05/10 15:02:44 maya Exp $ +$NetBSD: patch-gcc_Makefile.in,v 1.2 2024/04/01 14:33:57 js Exp $ -Add gcc libdir to a programs rpath so that _this gcc's_ support libraries +Add gcc libdir to programs' rpath so that _this gcc's_ support libraries are found. ---- gcc/Makefile.in.orig 2017-04-18 18:10:27.000000000 +0000 +Add a hack to increase the stack for genautomata on QNX. + +--- gcc/Makefile.in.orig 2023-07-07 07:08:18.000000000 +0000 +++ gcc/Makefile.in -@@ -2112,6 +2112,7 @@ prefix.o: $(BASEVER) +@@ -2206,6 +2206,7 @@ default-d.o: config/default-d.c # Language-independent files. DRIVER_DEFINES = \ @@ -13,3 +15,12 @@ are found. -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \ +@@ -2860,7 +2861,7 @@ $(genprogerr:%=build/gen%$(build_exeext) + genprog = $(genprogerr) check checksum match + + # These programs need libs over and above what they get from the above list. +-build/genautomata$(build_exeext) : BUILD_LIBS += -lm ++build/genautomata$(build_exeext) : BUILD_LIBS += -lm $(GENAUTOMATA_LDFLAGS) + + build/genrecog$(build_exeext) : build/hash-table.o build/inchash.o + build/gencfn-macros$(build_exeext) : build/hash-table.o build/vec.o \ Index: pkgsrc/lang/gcc10/patches/patch-gcc_plugin.c diff -u pkgsrc/lang/gcc10/patches/patch-gcc_plugin.c:1.1 pkgsrc/lang/gcc10/patches/patch-gcc_plugin.c:1.2 --- pkgsrc/lang/gcc10/patches/patch-gcc_plugin.c:1.1 Tue Sep 5 16:54:19 2023 +++ pkgsrc/lang/gcc10/patches/patch-gcc_plugin.c Mon Apr 1 14:33:57 2024 @@ -1,15 +1,18 @@ -$NetBSD: patch-gcc_plugin.c,v 1.1 2023/09/05 16:54:19 vins Exp $ +$NetBSD: patch-gcc_plugin.c,v 1.2 2024/04/01 14:33:57 js Exp $ Support dynamic link interface functions. ---- gcc/plugin.c.orig 2022-05-27 07:21:11.335381405 +0000 +Needs to come after the other includes as those add some defines that change +behavior (breaks QNX otherwise). + +--- gcc/plugin.c.orig 2023-07-07 07:08:19.000000000 +0000 +++ gcc/plugin.c -@@ -20,6 +20,8 @@ along with GCC; see the file COPYING3. - /* This file contains the support for GCC plugin mechanism based on the - APIs described in doc/plugin.texi. */ +@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. + #include "intl.h" + #include "plugin.h" +#include + - #include "config.h" - #include "system.h" - #include "coretypes.h" + #ifdef ENABLE_PLUGIN + #include "plugin-version.h" + #endif Index: pkgsrc/lang/gcc10/patches/patch-libgcc_crtstuff.c diff -u pkgsrc/lang/gcc10/patches/patch-libgcc_crtstuff.c:1.1 pkgsrc/lang/gcc10/patches/patch-libgcc_crtstuff.c:1.2 --- pkgsrc/lang/gcc10/patches/patch-libgcc_crtstuff.c:1.1 Sun May 10 15:02:44 2020 +++ pkgsrc/lang/gcc10/patches/patch-libgcc_crtstuff.c Mon Apr 1 14:33:57 2024 @@ -1,8 +1,10 @@ -$NetBSD: patch-libgcc_crtstuff.c,v 1.1 2020/05/10 15:02:44 maya Exp $ +$NetBSD: patch-libgcc_crtstuff.c,v 1.2 2024/04/01 14:33:57 js Exp $ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90147 ---- libgcc/crtstuff.c.orig 2017-01-01 12:07:43.000000000 +0000 +Disable TM clone registry on QNX, as the linker does not support it. + +--- libgcc/crtstuff.c.orig 2023-07-07 07:08:21.000000000 +0000 +++ libgcc/crtstuff.c @@ -81,7 +81,7 @@ call_ ## FUNC (void) \ #endif @@ -13,3 +15,13 @@ https://gcc.gnu.org/bugzilla/show_bug.cg #define BSD_DL_ITERATE_PHDR_AVAILABLE #endif +@@ -151,7 +151,8 @@ call_ ## FUNC (void) \ + # define HIDDEN_DTOR_LIST_END + #endif + +-#if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF) ++#if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF) \ ++ && !defined(__QNX__) + # define USE_TM_CLONE_REGISTRY 1 + #elif !defined(USE_TM_CLONE_REGISTRY) + # define USE_TM_CLONE_REGISTRY 0 Index: pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_quadmath-printf.c diff -u pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_quadmath-printf.c:1.1 pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_quadmath-printf.c:1.2 --- pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_quadmath-printf.c:1.1 Sun May 17 19:47:20 2020 +++ pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_quadmath-printf.c Mon Apr 1 14:33:58 2024 @@ -1,12 +1,20 @@ -$NetBSD: patch-libquadmath_printf_quadmath-printf.c,v 1.1 2020/05/17 19:47:20 rillig Exp $ +$NetBSD: patch-libquadmath_printf_quadmath-printf.c,v 1.2 2024/04/01 14:33:58 js Exp $ Fix -Werror=char-subscripts. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95178 ---- libquadmath/printf/quadmath-printf.c.orig 2020-05-07 10:50:02.000000000 +0000 +--- libquadmath/printf/quadmath-printf.c.orig 2023-07-07 07:08:21.000000000 +0000 +++ libquadmath/printf/quadmath-printf.c -@@ -189,7 +189,7 @@ quadmath_snprintf (char *str, size_t siz +@@ -22,6 +22,7 @@ Boston, MA 02110-1301, USA. */ + #include + #include + #include ++#include + #include "quadmath-printf.h" + + /* Read a simple integer from a string and update the string pointer. +@@ -189,7 +190,7 @@ quadmath_snprintf (char *str, size_t siz ++format; info.width = va_arg (ap, int); } @@ -15,7 +23,7 @@ https://gcc.gnu.org/bugzilla/show_bug.cg /* Constant width specification. */ info.width = read_int (&format); -@@ -206,7 +206,7 @@ quadmath_snprintf (char *str, size_t siz +@@ -206,7 +207,7 @@ quadmath_snprintf (char *str, size_t siz info.prec = va_arg (ap, int); } Index: pkgsrc/lang/gcc10/patches/patch-libquadmath_strtod_strtod__l.c diff -u pkgsrc/lang/gcc10/patches/patch-libquadmath_strtod_strtod__l.c:1.1 pkgsrc/lang/gcc10/patches/patch-libquadmath_strtod_strtod__l.c:1.2 --- pkgsrc/lang/gcc10/patches/patch-libquadmath_strtod_strtod__l.c:1.1 Sun May 17 19:47:20 2020 +++ pkgsrc/lang/gcc10/patches/patch-libquadmath_strtod_strtod__l.c Mon Apr 1 14:33:58 2024 @@ -1,10 +1,12 @@ -$NetBSD: patch-libquadmath_strtod_strtod__l.c,v 1.1 2020/05/17 19:47:20 rillig Exp $ +$NetBSD: patch-libquadmath_strtod_strtod__l.c,v 1.2 2024/04/01 14:33:58 js Exp $ Fix -Werror=char-subscripts. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95178 ---- libquadmath/strtod/strtod_l.c.orig 2020-05-07 10:50:02.000000000 +0000 +Fix _MAX and _MIN being defined on QNX and breaking the concatenation. + +--- libquadmath/strtod/strtod_l.c.orig 2023-07-07 07:08:21.000000000 +0000 +++ libquadmath/strtod/strtod_l.c @@ -57,10 +57,10 @@ # define STRING_TYPE char @@ -21,3 +23,17 @@ https://gcc.gnu.org/bugzilla/show_bug.cg # define TOLOWER_C(Ch) \ ({__typeof(Ch) __tlc = (Ch); \ (__tlc >= 'A' && __tlc <= 'Z') ? __tlc - 'A' + 'a' : __tlc; }) +@@ -89,6 +89,13 @@ __quadmath_strncasecmp_c (const char *s1 + #endif + + ++#ifdef _MAX ++#undef _MAX ++#endif ++#ifdef _MIN ++#undef _MIN ++#endif ++ + /* Constants we need from float.h; select the set for the FLOAT precision. */ + #define MANT_DIG PASTE(FLT,_MANT_DIG) + #define DIG PASTE(FLT,_DIG) Index: pkgsrc/lang/gcc10/patches/patch-gcc_config.gcc diff -u pkgsrc/lang/gcc10/patches/patch-gcc_config.gcc:1.4 pkgsrc/lang/gcc10/patches/patch-gcc_config.gcc:1.5 --- pkgsrc/lang/gcc10/patches/patch-gcc_config.gcc:1.4 Sun Jul 3 15:59:17 2022 +++ pkgsrc/lang/gcc10/patches/patch-gcc_config.gcc Mon Apr 1 14:33:57 2024 @@ -1,13 +1,15 @@ -$NetBSD: patch-gcc_config.gcc,v 1.4 2022/07/03 15:59:17 wiz Exp $ +$NetBSD: patch-gcc_config.gcc,v 1.5 2024/04/01 14:33:57 js Exp $ Match what is in NetBSD src. Fixes at least aarch64eb, and probably several others. Allow builds on Darwin 21. ---- gcc/config.gcc.orig 2021-04-08 04:56:28.033740243 -0700 -+++ gcc/config.gcc 2022-02-02 10:27:44.252878051 -0800 -@@ -462,6 +462,16 @@ +Fix build on QNX. + +--- gcc/config.gcc.orig 2023-07-07 07:08:19.000000000 +0000 ++++ gcc/config.gcc +@@ -462,6 +462,16 @@ m32r*-*-*) cpu_type=m32r extra_options="${extra_options} g.opt" ;; @@ -24,7 +26,7 @@ Allow builds on Darwin 21. m68k-*-*) extra_headers=math-68881.h extra_options="${extra_options} m68k/m68k-tables.opt" -@@ -877,6 +887,11 @@ +@@ -891,6 +901,11 @@ case ${target} in case ${enable_threads} in "" | yes | posix) thread_file='posix' ;; esac @@ -36,7 +38,7 @@ Allow builds on Darwin 21. nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h" default_use_cxa_atexit=yes target_has_targetdm=yes -@@ -1111,6 +1126,11 @@ +@@ -1125,6 +1140,11 @@ aarch64*-*-netbsd*) tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h" tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" @@ -48,7 +50,7 @@ Allow builds on Darwin 21. ;; aarch64*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h" -@@ -1252,7 +1272,6 @@ +@@ -1266,7 +1286,6 @@ arm*-*-freebsd*) # ARM Fr with_tls=${with_tls:-gnu} ;; arm*-*-netbsdelf*) @@ -56,7 +58,7 @@ Allow builds on Darwin 21. tmake_file="${tmake_file} arm/t-arm" tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" -@@ -1261,26 +1280,34 @@ +@@ -1275,26 +1294,34 @@ arm*-*-netbsdelf*) esac case ${target} in arm*-*-netbsdelf-*eabi*) @@ -98,7 +100,7 @@ Allow builds on Darwin 21. ;; arm*-*-linux-* | arm*-*-uclinuxfdpiceabi) tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" -@@ -1928,6 +1955,7 @@ +@@ -1942,6 +1969,7 @@ i[34567]86-*-netbsdelf*) ;; x86_64-*-netbsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h" @@ -106,7 +108,16 @@ Allow builds on Darwin 21. extra_options="${extra_options} netbsd.opt netbsd-elf.opt" ;; i[34567]86-*-openbsd*) -@@ -2250,6 +2278,16 @@ +@@ -2072,7 +2100,7 @@ i[34567]86-*-lynxos*) + gnu_ld=yes + gas=yes + ;; +-i[34567]86-*-nto-qnx*) ++i[34567]86-*-qnx*) + tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h" + extra_options="${extra_options} i386/nto.opt" + gnu_ld=yes +@@ -2264,6 +2292,16 @@ ia64*-*-elf*) target_cpu_default="${target_cpu_default}|MASK_GNU_LD" fi ;; @@ -123,7 +134,7 @@ Allow builds on Darwin 21. ia64*-*-freebsd*) tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h" target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" -@@ -2362,8 +2400,25 @@ +@@ -2376,8 +2414,25 @@ m68k-*-elf* | fido-*-elf*) ;; esac ;; @@ -150,7 +161,7 @@ Allow builds on Darwin 21. default_cf_cpu=5475 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" -@@ -2503,6 +2558,26 @@ +@@ -2517,6 +2572,26 @@ riscv*-*-freebsd*) # automatically detect that GAS supports it, yet we require it. gcc_cv_initfini_array=yes ;; @@ -177,7 +188,7 @@ Allow builds on Darwin 21. mips*-*-netbsd*) # NetBSD/mips, either endian. target_cpu_default="MASK_ABICALLS" tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h" -@@ -2918,11 +2993,24 @@ +@@ -2932,11 +3007,24 @@ powerpc*-*-freebsd*) ;; esac ;; @@ -206,7 +217,7 @@ Allow builds on Darwin 21. ;; powerpc-*-eabisimaltivec*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h" -@@ -3394,9 +3482,11 @@ +@@ -3408,9 +3496,11 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd* sparc64-*-netbsd*) tm_file="sparc/biarch64.h ${tm_file}" tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h" @@ -218,7 +229,7 @@ Allow builds on Darwin 21. ;; sparc64-*-openbsd*) tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h" -@@ -3911,6 +4001,9 @@ +@@ -3925,6 +4015,9 @@ if test x$with_cpu = x ; then frv550-*-*linux*) with_cpu=fr550 ;; @@ -228,7 +239,7 @@ Allow builds on Darwin 21. m68k*-*-*) case "$with_arch" in "cf") -@@ -4421,7 +4514,7 @@ +@@ -4435,7 +4528,7 @@ case "${target}" in esac ;; Index: pkgsrc/lang/gcc10/patches/patch-libgcc_config.host diff -u pkgsrc/lang/gcc10/patches/patch-libgcc_config.host:1.2 pkgsrc/lang/gcc10/patches/patch-libgcc_config.host:1.3 --- pkgsrc/lang/gcc10/patches/patch-libgcc_config.host:1.2 Wed Feb 2 22:07:28 2022 +++ pkgsrc/lang/gcc10/patches/patch-libgcc_config.host Mon Apr 1 14:33:57 2024 @@ -1,11 +1,13 @@ -$NetBSD: patch-libgcc_config.host,v 1.2 2022/02/02 22:07:28 mrg Exp $ +$NetBSD: patch-libgcc_config.host,v 1.3 2024/04/01 14:33:57 js Exp $ This is needed for arm64 to get Out-of-line LSE atomics linked into libgcc. libsupc++ fails to link without this, and for arm to build. ---- libgcc/config.host.orig 2021-04-08 04:56:29.805761640 -0700 -+++ libgcc/config.host 2022-02-02 04:08:51.653635705 -0800 -@@ -377,6 +377,7 @@ +Fix build on QNX. + +--- libgcc/config.host.orig 2023-07-07 07:08:21.000000000 +0000 ++++ libgcc/config.host +@@ -405,6 +405,7 @@ aarch64*-*-freebsd*) aarch64*-*-netbsd*) extra_parts="$extra_parts crtfastmath.o" tmake_file="${tmake_file} ${cpu_type}/t-aarch64" @@ -13,7 +15,7 @@ libsupc++ fails to link without this, an tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm" md_unwind_header=aarch64/aarch64-unwind.h ;; -@@ -463,7 +464,8 @@ +@@ -491,7 +492,8 @@ arm*-*-netbsdelf*) case ${host} in arm*-*-netbsdelf-*eabi*) tmake_file="${tmake_file} arm/t-netbsd-eabi" @@ -23,3 +25,12 @@ libsupc++ fails to link without this, an ;; *) tmake_file="${tmake_file} arm/t-netbsd t-slibgcc-gld-nover" +@@ -797,7 +799,7 @@ i[34567]86-pc-msdosdjgpp*) + ;; + i[34567]86-*-lynxos*) + ;; +-i[34567]86-*-nto-qnx*) ++i[34567]86-*-qnx*) + tmake_file="$tmake_file i386/t-nto t-libgcc-pic" + extra_parts=crtbegin.o + ;; Added files: Index: pkgsrc/lang/gcc10/patches/patch-gcc_opts-common.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gcc_opts-common.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gcc_opts-common.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,13 @@ +$NetBSD: patch-gcc_opts-common.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +--- gcc/opts-common.c.orig 2023-07-07 07:08:19.000000000 +0000 ++++ gcc/opts-common.c +@@ -1808,7 +1808,7 @@ void prepend_xassembler_to_collect_as_op + } + } + +-jobserver_info::jobserver_info () ++jobserver_info::jobserver_info () : rfd(-1), wfd(-1), is_active(false) + { + /* Traditionally, GNU make uses opened pipes for jobserver-auth, + e.g. --jobserver-auth=3,4. Index: pkgsrc/lang/gcc10/patches/patch-gcc_opts-jobserver.h diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gcc_opts-jobserver.h:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gcc_opts-jobserver.h Mon Apr 1 14:33:57 2024 @@ -0,0 +1,28 @@ +$NetBSD: patch-gcc_opts-jobserver.h,v 1.1 2024/04/01 14:33:57 js Exp $ + +--- gcc/opts-jobserver.h.orig 2023-07-07 07:08:19.000000000 +0000 ++++ gcc/opts-jobserver.h +@@ -30,17 +30,17 @@ struct jobserver_info + jobserver_info (); + + /* Error message if there is a problem. */ +- string error_msg = ""; ++ string error_msg; + /* Skipped MAKEFLAGS where --jobserver-auth is skipped. */ +- string skipped_makeflags = ""; ++ string skipped_makeflags; + /* File descriptor for reading used for jobserver communication. */ +- int rfd = -1; ++ int rfd; + /* File descriptor for writing used for jobserver communication. */ +- int wfd = -1; ++ int wfd; + /* Named pipe path. */ +- string pipe_path = ""; ++ string pipe_path; + /* Return true if jobserver is active. */ +- bool is_active = false; ++ bool is_active; + }; + + #endif /* GCC_JOBSERVER_H */ Index: pkgsrc/lang/gcc10/patches/patch-gmp_gen-sieve.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gmp_gen-sieve.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gmp_gen-sieve.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,17 @@ +$NetBSD: patch-gmp_gen-sieve.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +Fix compiling with GCC 4.4.2 on QNX. + +--- gmp/gen-sieve.c.orig 2023-07-29 13:42:16.000000000 +0000 ++++ gmp/gen-sieve.c +@@ -95,8 +95,9 @@ generate (int limb_bits, int limit) + void + setmask (mpz_t mask, int a, int b) + { ++ unsigned i; + mpz_set_ui (mask, 0); +- for (unsigned i = 0; i < 2 * a * b; ++i) ++ for (i = 0; i < 2 * a * b; ++i) + if ((bit_to_n (i) % a == 0) || (bit_to_n (i) % b == 0)) + mpz_setbit (mask, i); + } Index: pkgsrc/lang/gcc10/patches/patch-gmp_mpn_generic_compute_powtab.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gmp_mpn_generic_compute_powtab.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gmp_mpn_generic_compute_powtab.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,67 @@ +$NetBSD: patch-gmp_mpn_generic_compute_powtab.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +Fix compiling with GCC 4.4.2 on QNX. + +--- gmp/mpn/generic/compute_powtab.c.orig 2023-07-29 13:42:16.000000000 +0000 ++++ gmp/mpn/generic/compute_powtab.c +@@ -70,6 +70,7 @@ mpn_compute_powtab_mul (powers_t *powtab + mp_limb_t cy; + long start_idx; + int c; ++ long pi; + + mp_limb_t big_base = mp_bases[base].big_base; + int chars_per_limb = mp_bases[base].chars_per_limb; +@@ -139,7 +140,7 @@ mpn_compute_powtab_mul (powers_t *powtab + start_idx = n_pows - 3; + } + +- for (long pi = start_idx; pi >= 0; pi--) ++ for (pi = start_idx; pi >= 0; pi--) + { + t = powtab_mem_ptr; + powtab_mem_ptr += 2 * n + 2; +@@ -223,7 +224,8 @@ mpn_compute_powtab_div (powers_t *powtab + + mp_size_t n = 1; + mp_size_t shift = 0; +- for (long pi = n_pows - 1; pi >= 0; pi--) ++ long pi; ++ for (pi = n_pows - 1; pi >= 0; pi--) + { + t = powtab_mem_ptr; + powtab_mem_ptr += 2 * n; +@@ -271,7 +273,7 @@ mpn_compute_powtab_div (powers_t *powtab + + /* Strip any remaining low zero limbs. */ + pt -= n_pows + 1; +- for (long pi = n_pows; pi >= 0; pi--) ++ for (pi = n_pows; pi >= 0; pi--) + { + mp_ptr t = pt[pi].p; + mp_size_t shift = pt[pi].shift; +@@ -293,7 +295,8 @@ powtab_decide (size_t *exptab, size_t un + { + int chars_per_limb = mp_bases[base].chars_per_limb; + long n_pows = 0; +- for (size_t pn = (un + 1) >> 1; pn != 1; pn = (pn + 1) >> 1) ++ size_t pn; ++ for (pn = (un + 1) >> 1; pn != 1; pn = (pn + 1) >> 1) + { + exptab[n_pows] = pn * chars_per_limb; + n_pows++; +@@ -301,11 +304,12 @@ powtab_decide (size_t *exptab, size_t un + exptab[n_pows] = chars_per_limb; + + #if HAVE_mpn_compute_powtab_mul && HAVE_mpn_compute_powtab_div +- size_t pn = un - 1; ++ pn = un - 1; + size_t xn = (un + 1) >> 1; + unsigned mcost = 1; + unsigned dcost = 1; +- for (long i = n_pows - 2; i >= 0; i--) ++ long i; ++ for (i = n_pows - 2; i >= 0; i--) + { + size_t pow = (pn >> (i + 1)) + 1; + Index: pkgsrc/lang/gcc10/patches/patch-gmp_mpz_millerrabin.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gmp_mpz_millerrabin.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gmp_mpz_millerrabin.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,16 @@ +$NetBSD: patch-gmp_mpz_millerrabin.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +Fix compiling with GCC 4.4.2 on QNX. + +--- gmp/mpz/millerrabin.c.orig 2023-07-29 13:42:17.000000000 +0000 ++++ gmp/mpz/millerrabin.c +@@ -206,7 +206,8 @@ millerrabin (mpz_srcptr n, mpz_ptr x, mp + if (mpz_cmp_ui (y, 1L) == 0 || mod_eq_m1 (y, n)) + return 1; + +- for (mp_bitcnt_t i = 1; i < k; ++i) ++ mp_bitcnt_t i; ++ for (i = 1; i < k; ++i) + { + mpz_powm_ui (y, y, 2L, n); + if (mod_eq_m1 (y, n)) Index: pkgsrc/lang/gcc10/patches/patch-gmp_mpz_nextprime.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gmp_mpz_nextprime.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gmp_mpz_nextprime.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,43 @@ +$NetBSD: patch-gmp_mpz_nextprime.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +Fix compiling with GCC 4.4.2 on QNX. + +--- gmp/mpz/nextprime.c.orig 2023-07-29 13:42:17.000000000 +0000 ++++ gmp/mpz/nextprime.c +@@ -113,7 +113,8 @@ findnext_small (unsigned t, short diff) + for (; ; t += diff) + { + unsigned prime = 3; +- for (int i = 0; ; prime += primegap_small[i++]) ++ int i; ++ for (i = 0; ; prime += primegap_small[i++]) + { + unsigned q, r; + q = t / prime; +@@ -182,14 +183,18 @@ findnext (mpz_ptr p, + i = 0; + last_prime = 3; + /* THINK: should we get rid of sieve_limit and use (i < prime_limit)? */ +- for (mp_limb_t j = 4, *sp = sieve; j < sieve_limit; j += GMP_LIMB_BITS * 3) +- for (mp_limb_t b = j, x = ~ *(sp++); x != 0; b += 3, x >>= 1) +- if (x & 1) +- { +- mp_limb_t prime = b | 1; +- primegap_tmp[i++] = prime - last_prime; +- last_prime = prime; +- } ++ mp_limb_t j, *sp; ++ for (j = 4, sp = sieve; j < sieve_limit; j += GMP_LIMB_BITS * 3) ++ { ++ mp_limb_t b, x; ++ for (b = j, x = ~ *(sp++); x != 0; b += 3, x >>= 1) ++ if (x & 1) ++ { ++ mp_limb_t prime = b | 1; ++ primegap_tmp[i++] = prime - last_prime; ++ last_prime = prime; ++ } ++ } + + /* Both primesieve and prime_limit ignore the first two primes. */ + ASSERT(i == prime_limit); Index: pkgsrc/lang/gcc10/patches/patch-gmp_mpz_primorial_ui.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gmp_mpz_primorial_ui.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gmp_mpz_primorial_ui.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,31 @@ +$NetBSD: patch-gmp_mpz_primorial_ui.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +Fix compiling with GCC 4.4.2 on QNX. + +--- gmp/mpz/primorial_ui.c.orig 2023-07-29 13:42:17.000000000 +0000 ++++ gmp/mpz/primorial_ui.c +@@ -106,13 +106,17 @@ mpz_primorial_ui (mpz_ptr res, unsigned + max_prod = GMP_NUMB_MAX / n; + + /* Loop on sieved primes. */ +- for (mp_limb_t i = 4, *sp = sieve; i < n; i += GMP_LIMB_BITS * 3) +- for (mp_limb_t b = i, x = ~ *(sp++); x != 0; b += 3, x >>= 1) +- if (x & 1) +- { +- mp_limb_t prime = b | 1; +- FACTOR_LIST_STORE (prime, prod, max_prod, factors, j); +- } ++ mp_limb_t i, *sp; ++ for (i = 4, sp = sieve; i < n; i += GMP_LIMB_BITS * 3) ++ { ++ mp_limb_t b, x; ++ for (b = i, x = ~ *(sp++); x != 0; b += 3, x >>= 1) ++ if (x & 1) ++ { ++ mp_limb_t prime = b | 1; ++ FACTOR_LIST_STORE (prime, prod, max_prod, factors, j); ++ } ++ } + } + + if (j != 0) Index: pkgsrc/lang/gcc10/patches/patch-gmp_primesieve.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-gmp_primesieve.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-gmp_primesieve.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,17 @@ +$NetBSD: patch-gmp_primesieve.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +Fix compiling with GCC 4.4.2 on QNX. + +--- gmp/primesieve.c.orig 2023-07-29 13:42:17.000000000 +0000 ++++ gmp/primesieve.c +@@ -288,8 +288,8 @@ gmp_primesieve (mp_ptr bit_array, mp_lim + bits = n_fto_bit(n); + size = bits / GMP_LIMB_BITS + 1; + +- for (mp_size_t j = 0, lim = MIN (size, PRIMESIEVE_NUMBEROF_TABLE); +- j < lim; ++j) ++ mp_size_t j, lim; ++ for (j = 0, lim = MIN (size, PRIMESIEVE_NUMBEROF_TABLE); j < lim; ++j) + bit_array [j] = presieved [j]; /* memcopy? */ + + if (size > PRIMESIEVE_NUMBEROF_TABLE) { Index: pkgsrc/lang/gcc10/patches/patch-include_plugin-api.h diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-include_plugin-api.h:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-include_plugin-api.h Mon Apr 1 14:33:57 2024 @@ -0,0 +1,20 @@ +$NetBSD: patch-include_plugin-api.h,v 1.1 2024/04/01 14:33:57 js Exp $ + +QNX uses __LITTLEENDIAN__ / __BIGENDIAN__, so detect based on that as well. + +--- include/plugin-api.h.orig 2023-07-07 07:08:21.000000000 +0000 ++++ include/plugin-api.h +@@ -89,6 +89,13 @@ + #ifdef __BIG_ENDIAN__ + #define PLUGIN_BIG_ENDIAN 1 + #endif ++/* Detect based on __BIGENDIAN__ and __LITTLEENDIAN__ */ ++#ifdef __LITTLEENDIAN__ ++#define PLUGIN_LITTLE_ENDIAN 1 ++#endif ++#ifdef __BIGENDIAN__ ++#define PLUGIN_BIG_ENDIAN 1 ++#endif + #endif + + #ifdef __cplusplus Index: pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_execute_command_line.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_execute_command_line.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_execute_command_line.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,15 @@ +$NetBSD: patch-libgfortran_intrinsics_execute_command_line.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +--- libgfortran/intrinsics/execute_command_line.c.orig 2023-07-07 07:08:21.000000000 +0000 ++++ libgfortran/intrinsics/execute_command_line.c +@@ -45,6 +45,10 @@ extern char **environ; + #include + #endif + ++#ifndef SA_RESTART ++#define SA_RESTART 0 ++#endif ++ + enum { EXEC_SYNCHRONOUS = -2, EXEC_NOERROR = 0, EXEC_SYSTEMFAILED, + EXEC_CHILDFAILED, EXEC_INVALIDCOMMAND }; + static const char *cmdmsg_values[] = Index: pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_string_intrinsics_inc.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_string_intrinsics_inc.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libgfortran_intrinsics_string_intrinsics_inc.c Mon Apr 1 14:33:57 2024 @@ -0,0 +1,17 @@ +$NetBSD: patch-libgfortran_intrinsics_string_intrinsics_inc.c,v 1.1 2024/04/01 14:33:57 js Exp $ + +--- libgfortran/intrinsics/string_intrinsics_inc.c.orig 2023-07-07 07:08:21.000000000 +0000 ++++ libgfortran/intrinsics/string_intrinsics_inc.c +@@ -203,11 +203,7 @@ string_len_trim (gfc_charlen_type len, c + /* Handle the first characters until we're aligned on a long word + boundary. Actually, s + i + 1 must be properly aligned, because + s + i will be the last byte of a long word read. */ +- starting = ( +-#ifdef __INTPTR_TYPE__ +- (__INTPTR_TYPE__) +-#endif +- (s + i + 1)) % long_len; ++ starting = ((intptr_t)(s + i + 1)) % long_len; + i -= starting; + for (; starting > 0; --starting) + if (s[i + starting] != ' ') Index: pkgsrc/lang/gcc10/patches/patch-libiberty_pex-unix.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libiberty_pex-unix.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libiberty_pex-unix.c Mon Apr 1 14:33:58 2024 @@ -0,0 +1,16 @@ +$NetBSD: patch-libiberty_pex-unix.c,v 1.1 2024/04/01 14:33:58 js Exp $ + +QNX has spawnve and spawnvpe, which makes configure assume it's the same +spawnve / spawnvpe that exists on Windows. + +--- libiberty/pex-unix.c.orig 2023-07-07 07:08:21.000000000 +0000 ++++ libiberty/pex-unix.c +@@ -366,7 +366,7 @@ pex_unix_close (struct pex_obj *obj ATTR + + /* Execute a child. */ + +-#if defined(HAVE_SPAWNVE) && defined(HAVE_SPAWNVPE) ++#if defined(HAVE_SPAWNVE) && defined(HAVE_SPAWNVPE) && !defined(__QNX__) + /* Implementation of pex->exec_child using the Cygwin spawn operation. */ + + /* Subroutine of pex_unix_exec_child. Move OLD_FD to a new file descriptor Index: pkgsrc/lang/gcc10/patches/patch-libobjc_objc_runtime.h diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libobjc_objc_runtime.h:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libobjc_objc_runtime.h Mon Apr 1 14:33:58 2024 @@ -0,0 +1,23 @@ +$NetBSD: patch-libobjc_objc_runtime.h,v 1.1 2024/04/01 14:33:58 js Exp $ + +This is weird. For some reason, those are not defined on QNX even when not +including first. This might be a side effect of not using +fixincludes on QNX (as that breaks headers even more). + +This is obviously a nasty hack and a proper solution needs to be found, but for +now, this makes libobjc compile. + +--- libobjc/objc/runtime.h.orig 2024-04-01 12:21:17.000000000 +0000 ++++ libobjc/objc/runtime.h +@@ -42,6 +42,11 @@ see the files COPYING3 and COPYING.RUNTI + extern "C" { + #endif /* __cplusplus */ + ++#ifdef __QNX__ ++typedef __SIZE_TYPE__ size_t; ++typedef __PTRDIFF_TYPE__ ptrdiff_t; ++#endif ++ + /* An 'Ivar' represents an instance variable. It holds information + about the name, type and offset of the instance variable. */ + typedef struct objc_ivar *Ivar; Index: pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_printf_fphex.c diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_printf_fphex.c:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libquadmath_printf_printf_fphex.c Mon Apr 1 14:33:58 2024 @@ -0,0 +1,12 @@ +$NetBSD: patch-libquadmath_printf_printf_fphex.c,v 1.1 2024/04/01 14:33:58 js Exp $ + +--- libquadmath/printf/printf_fphex.c.orig 2023-07-07 07:08:21.000000000 +0000 ++++ libquadmath/printf/printf_fphex.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #define NDEBUG + #include + #include "quadmath-rounding-mode.h" Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_std_abs.h diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_std_abs.h:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_std_abs.h Mon Apr 1 14:33:58 2024 @@ -0,0 +1,15 @@ +$NetBSD: patch-libstdc++-v3_include_bits_std_abs.h,v 1.1 2024/04/01 14:33:58 js Exp $ + +--- libstdc++-v3/include/bits/std_abs.h.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/include/bits/std_abs.h +@@ -41,6 +41,10 @@ + #endif + #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS + ++#ifdef __QNX__ ++#define __CORRECT_ISO_CPP_MATH_H_PROTO ++#endif ++ + #undef abs + + extern "C++" Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_stl_function.h diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_stl_function.h:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_bits_stl_function.h Mon Apr 1 14:33:58 2024 @@ -0,0 +1,49 @@ +$NetBSD: patch-libstdc++-v3_include_bits_stl_function.h,v 1.1 2024/04/01 14:33:58 js Exp $ + +--- libstdc++-v3/include/bits/stl_function.h.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/include/bits/stl_function.h +@@ -60,6 +60,8 @@ + #include + #endif + ++#include ++ + namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -421,7 +423,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + #endif + return __x > __y; + #endif +- return (__UINTPTR_TYPE__)__x > (__UINTPTR_TYPE__)__y; ++ return (uintptr_t)__x > (uintptr_t)__y; + } + }; + +@@ -440,7 +442,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + #endif + return __x < __y; + #endif +- return (__UINTPTR_TYPE__)__x < (__UINTPTR_TYPE__)__y; ++ return (uintptr_t)__x < (uintptr_t)__y; + } + }; + +@@ -459,7 +461,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + #endif + return __x >= __y; + #endif +- return (__UINTPTR_TYPE__)__x >= (__UINTPTR_TYPE__)__y; ++ return (uintptr_t)__x >= (uintptr_t)__y; + } + }; + +@@ -478,7 +480,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + #endif + return __x <= __y; + #endif +- return (__UINTPTR_TYPE__)__x <= (__UINTPTR_TYPE__)__y; ++ return (uintptr_t)__x <= (uintptr_t)__y; + } + }; + Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cmath diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cmath:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cmath Mon Apr 1 14:33:58 2024 @@ -0,0 +1,15 @@ +$NetBSD: patch-libstdc++-v3_include_c_global_cmath,v 1.1 2024/04/01 14:33:58 js Exp $ + +--- libstdc++-v3/include/c_global/cmath.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/include/c_global/cmath +@@ -49,6 +49,10 @@ + #ifndef _GLIBCXX_CMATH + #define _GLIBCXX_CMATH 1 + ++#ifdef __QNX__ ++#define __CORRECT_ISO_CPP_MATH_H_PROTO ++#endif ++ + // Get rid of those macros defined in in lieu of real functions. + #undef div + #undef acos Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cstring diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cstring:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cstring Mon Apr 1 14:33:58 2024 @@ -0,0 +1,15 @@ +$NetBSD: patch-libstdc++-v3_include_c_global_cstring,v 1.1 2024/04/01 14:33:58 js Exp $ + +--- libstdc++-v3/include/c_global/cstring.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/include/c_global/cstring +@@ -44,6 +44,10 @@ + #ifndef _GLIBCXX_CSTRING + #define _GLIBCXX_CSTRING 1 + ++#ifdef __QNX__ ++#define __CORRECT_ISO_CPP_STRING_H_PROTO ++#endif ++ + // Get rid of those macros defined in in lieu of real functions. + #undef memchr + #undef memcmp Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cwchar diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cwchar:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_include_c_global_cwchar Mon Apr 1 14:33:58 2024 @@ -0,0 +1,15 @@ +$NetBSD: patch-libstdc++-v3_include_c_global_cwchar,v 1.1 2024/04/01 14:33:58 js Exp $ + +--- libstdc++-v3/include/c_global/cwchar.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/include/c_global/cwchar +@@ -47,6 +47,10 @@ + #ifndef _GLIBCXX_CWCHAR + #define _GLIBCXX_CWCHAR 1 + ++#ifdef __QNX__ ++#define __CORRECT_ISO_CPP_WCHAR_H_PROTO ++#endif ++ + // Need to do a bit of trickery here with mbstate_t as char_traits + // assumes it is in wchar.h, regardless of wchar_t specializations. + #ifndef _GLIBCXX_HAVE_MBSTATE_T Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi.h diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi.h:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi.h Mon Apr 1 14:33:58 2024 @@ -0,0 +1,17 @@ +$NetBSD: patch-libstdc++-v3_libsupc++_cxxabi.h,v 1.1 2024/04/01 14:33:58 js Exp $ + +Nasty hack because ptrdiff_t is missing on QNX with GCC 10 when stddef.h is not +included first. + +--- libstdc++-v3/libsupc++/cxxabi.h.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/libsupc++/cxxabi.h +@@ -58,6 +58,9 @@ namespace __cxxabiv1 + { + #endif + ++#ifdef __QNX__ ++ typedef __PTRDIFF_TYPE__ ptrdiff_t; ++#endif + typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *); + + // Allocate array. Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi_init_exception.h diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi_init_exception.h:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_libsupc++_cxxabi_init_exception.h Mon Apr 1 14:33:58 2024 @@ -0,0 +1,14 @@ +$NetBSD: patch-libstdc++-v3_libsupc++_cxxabi_init_exception.h,v 1.1 2024/04/01 14:33:58 js Exp $ + +--- libstdc++-v3/libsupc++/cxxabi_init_exception.h.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/libsupc++/cxxabi_init_exception.h +@@ -54,6 +54,9 @@ namespace std + + namespace __cxxabiv1 + { ++#ifdef __QNX__ ++ using std::size_t; ++#endif + struct __cxa_refcounted_exception; + + extern "C" Index: pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_src_c++11_system_error.cc diff -u /dev/null pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_src_c++11_system_error.cc:1.1 --- /dev/null Mon Apr 1 14:33:58 2024 +++ pkgsrc/lang/gcc10/patches/patch-libstdc++-v3_src_c++11_system_error.cc Mon Apr 1 14:33:58 2024 @@ -0,0 +1,15 @@ +$NetBSD: patch-libstdc++-v3_src_c++11_system_error.cc,v 1.1 2024/04/01 14:33:58 js Exp $ + +EALREADY and EBUSY are the same on QNX. + +--- libstdc++-v3/src/c++11/system_error.cc.orig 2023-07-07 07:08:22.000000000 +0000 ++++ libstdc++-v3/src/c++11/system_error.cc +@@ -100,7 +100,7 @@ namespace + #ifdef EAGAIN + case EAGAIN: + #endif +-#ifdef EALREADY ++#if defined(EALREADY) && (!defined(EBUSY) || EALREADY != EBUSY) + case EALREADY: + #endif + #ifdef EBADF --_----------=_171198203852930--