CVS commit: pkgsrc/lang/gcc16

"Thomas Klausner" <[email protected]>
Newsgroups gmane.os.netbsd.devel.pkgsrc.cvs
Message-ID <[email protected]>
Module Name:	pkgsrc
Committed By:	wiz
Date:		Mon Aug 10 21:41:35 UTC 2026

Added Files:
	pkgsrc/lang/gcc16: DESCR Makefile Makefile.common buildlink3.mk
	    distinfo options.mk version.mk
	pkgsrc/lang/gcc16/patches: patch-configure patch-configure.ac
	    patch-gcc_Makefile.in patch-gcc_config.gcc patch-gcc_config.host
	    patch-gcc_config_aarch64_aarch64-netbsd.h
	    patch-gcc_config_arm_arm.h patch-gcc_config_arm_bpabi.h
	    patch-gcc_config_arm_elf.h patch-gcc_config_arm_netbsd-eabi.h
	    patch-gcc_config_arm_netbsd-elf.h patch-gcc_config_i386_t-netbsd64
	    patch-gcc_config_netbsd.h patch-isl_configure
	    patch-libffi_configure patch-libffi_testsuite_libffi.call_float2.c
	    patch-libgcc_config.host patch-libgcc_crtstuff.c
	    patch-libgcobol_configure.tgt patch-libgcobol_posix_shim_open.cc
	    patch-libgfortran_io_io.h
	    patch-libquadmath_printf_quadmath-printf.c
	    patch-libquadmath_strtod_strtod__l.c

Log Message:
lang/gcc16: import gcc16-16.1.0

The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C,
Fortran, and Go.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/gcc16/DESCR pkgsrc/lang/gcc16/Makefile \
    pkgsrc/lang/gcc16/Makefile.common pkgsrc/lang/gcc16/buildlink3.mk \
    pkgsrc/lang/gcc16/distinfo pkgsrc/lang/gcc16/options.mk \
    pkgsrc/lang/gcc16/version.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/gcc16/patches/patch-configure \
    pkgsrc/lang/gcc16/patches/patch-configure.ac \
    pkgsrc/lang/gcc16/patches/patch-gcc_Makefile.in \
    pkgsrc/lang/gcc16/patches/patch-gcc_config.gcc \
    pkgsrc/lang/gcc16/patches/patch-gcc_config.host \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_aarch64_aarch64-netbsd.h \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_arm.h \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_bpabi.h \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_elf.h \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-eabi.h \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-elf.h \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_i386_t-netbsd64 \
    pkgsrc/lang/gcc16/patches/patch-gcc_config_netbsd.h \
    pkgsrc/lang/gcc16/patches/patch-isl_configure \
    pkgsrc/lang/gcc16/patches/patch-libffi_configure \
    pkgsrc/lang/gcc16/patches/patch-libffi_testsuite_libffi.call_float2.c \
    pkgsrc/lang/gcc16/patches/patch-libgcc_config.host \
    pkgsrc/lang/gcc16/patches/patch-libgcc_crtstuff.c \
    pkgsrc/lang/gcc16/patches/patch-libgcobol_configure.tgt \
    pkgsrc/lang/gcc16/patches/patch-libgcobol_posix_shim_open.cc \
    pkgsrc/lang/gcc16/patches/patch-libgfortran_io_io.h \
    pkgsrc/lang/gcc16/patches/patch-libquadmath_printf_quadmath-printf.c \
    pkgsrc/lang/gcc16/patches/patch-libquadmath_strtod_strtod__l.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
(unnamed) (text/x-diff, 44 KB)
Added files:

Index: pkgsrc/lang/gcc16/DESCR
diff -u /dev/null pkgsrc/lang/gcc16/DESCR:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/DESCR	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,2 @@
+The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C,
+Fortran, and Go.
Index: pkgsrc/lang/gcc16/Makefile
diff -u /dev/null pkgsrc/lang/gcc16/Makefile:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/Makefile	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,88 @@
+# $NetBSD: Makefile,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+PKGNAME=	${GCC_PKGNAME}-${GCC16_DIST_VERSION}
+## When bumping the PKGREVISION of this package the PKGREVISION of
+## lang/gcc16-libs needs to be bumped to be at least 1 more than the
+## PKGREVISION of this package!
+#PKGREVISION=	1
+COMMENT=	The GNU Compiler Collection (GCC) - 16.0 Release Series
+
+LANGS=		c
+
+# perhaps lower, but 4.8 is not good enough
+TEXINFO_REQD+=	7.0
+
+.include "Makefile.common"
+
+# In some cases LINKER_RPATH_FLAG needs a trailing space.
+LINKER_RPATH_FLAG:=	${LINKER_RPATH_FLAG:S/-rpath/& /}
+
+## The Library rpath to use in end programs.
+LDFLAGS_FOR_TARGET=	${LDFLAGS:M${COMPILER_RPATH_FLAG}*:N*/usr/lib*} ${LDFLAGS:M-Wl,-z*}
+
+# The "-static-libstdc++ -static-libgcc" flags are normally added to the
+# boot-ldflags by configure but because we are supply the boot-ldflags
+# we mash supply them.
+BOOT_LDFLAGS=		-static-libstdc++ -static-libgcc ${LDFLAGS_FOR_TARGET}
+# Needed on Darwin when LDFLAGS point to a SDK
+BOOT_LDFLAGS+=		${LDFLAGS:M-Wl,-syslibroot*}
+# GCC does not understand this option; remove it, or stage build will fail
+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"
+SUBST_CLASSES+=		fixinc
+SUBST_STAGE.fixinc=	pre-configure
+SUBST_FILES.fixinc=	gcc/Makefile.in
+SUBST_SED.fixinc=	-e "s,\./fixinc.sh,-c true,"
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-*)
+# on NetBSD, use the native SSP code in libc
+CONFIGURE_ARGS+=	--disable-libssp
+# Match base libstdc++ major
+SUBST_CLASSES+=		libstdc
+SUBST_STAGE.libstdc=	pre-configure
+SUBST_FILES.libstdc=	libstdc++-v3/configure
+SUBST_MESSAGE.libstdc=	Bumping libstdc++ major to 7
+SUBST_SED.libstdc=	-e 's,libtool_VERSION=6:,libtool_VERSION=7:,g'
+.else
+CONFIGURE_ARGS+=	--enable-libssp
+.endif
+
+## For target librarys and libjava programs.
+CONFIGURE_ENV+=		LDFLAGS_FOR_TARGET=${LDFLAGS_FOR_TARGET:Q}
+
+.if ${USE_CROSS_COMPILE:U:tl} == "yes"
+CONFIGURE_ENV+=		CC_FOR_BUILD=${NATIVE_CC:Q}
+CONFIGURE_ENV+=		CXX_FOR_BUILD=${NATIVE_CXX:Q}
+.endif
+
+CONFIGURE_ARGS+=	--enable-languages=${LANGS:Q}
+CONFIGURE_ARGS+=	--enable-shared
+
+CTF_FILES_SKIP+=	*/gengtype	# CPU limit exceeded
+
+TEST_TARGET=	-j ${MAKE_JOBS} -k check || ${TRUE}
+TEST_DEPENDS+=	dejagnu-[0-9]*:../../devel/dejagnu
+
+post-test:
+	${RUN} cd ${WRKSRC} && cd ${OBJDIR} &&		\
+	${SHELL} ${WRKSRC}/contrib/test_summary >${WRKDIR}/test_summary.log
+	${INFO_MSG} "Test summary are available in ${WRKDIR}/test_summary.log"
+
+post-install:
+	${TEST} -f ${DESTDIR}${GCC_PREFIX}/bin/cc || \
+		( cd ${DESTDIR}${GCC_PREFIX}/bin ; ${LN} -f gcc cc )
+.if !empty(MACHINE_PLATFORM:MSunOS-*-*86*) && ${OS_VERSION} != "5.11"
+	${SH} files/values.c ${DESTDIR}${GCC_PREFIX}/bin/gcc -m32 || ${TRUE}
+	${SH} files/values.c ${DESTDIR}${GCC_PREFIX}/bin/gcc -m64 || ${TRUE}
+.endif
+
+GENERATE_PLIST+= \
+	cd ${DESTDIR}${PREFIX} && \
+	${FIND} ${GCC_SUBPREFIX} \( -type f -o -type l \) -print | ${SORT};
+
+.include "../../textproc/libxml2/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/lang/gcc16/Makefile.common
diff -u /dev/null pkgsrc/lang/gcc16/Makefile.common:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/Makefile.common	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,179 @@
+# $NetBSD: Makefile.common,v 1.1 2026/08/10 21:41:34 wiz Exp $
+# used by lang/gcc16-libjit/Makefile
+
+GCC_PKGNAME=		gcc16
+.include		"version.mk"
+
+DISTNAME=	gcc-${GCC16_DIST_VERSION}
+CATEGORIES=	lang
+MASTER_SITES=	${MASTER_SITE_GNU:=gcc/gcc-${GCC16_DIST_VERSION}/}
+EXTRACT_SUFX=	.tar.xz
+
+MAINTAINER=	[email protected]
+HOMEPAGE=	https://gcc.gnu.org/
+LICENSE=	gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
+
+DISTFILES=		${DEFAULT_DISTFILES}
+EXTRACT_ONLY=		${DEFAULT_DISTFILES}
+
+PATCHDIR=		${.CURDIR}/../../lang/gcc16/patches
+DISTINFO_FILE=		${.CURDIR}/../../lang/gcc16/distinfo
+
+# Relocations result in a linker error on AArch64, but not x86.
+MKPIE_SUPPORTED=	no
+CHECK_RELRO_SKIP+=	${GCC_PKGNAME}/lib/*
+
+USE_LANGUAGES=		c c++
+USE_TOOLS+=		gmake makeinfo sed tar:build
+USE_TOOLS.NetBSD+=	gsed
+
+GNU_CONFIGURE=		yes
+GNU_CONFIGURE_STRICT=	no
+## Build outside ${WRKSRC}
+OBJDIR=			../build
+CONFIGURE_DIRS=		${OBJDIR}
+CONFIGURE_SCRIPT=	../${DISTNAME}/configure
+GCC_SUBPREFIX=		${GCC_PKGNAME}
+GCC_PREFIX=		${PREFIX}/${GCC_SUBPREFIX}
+GNU_CONFIGURE_PREFIX=	${GCC_PREFIX}
+INFO_FILES=		yes
+CONFIGURE_ARGS+=	--disable-libstdcxx-pch
+
+# error: 'for' loop initial declarations are only allowed in C99 mode
+FORCE_C_STD=		gnu99
+USE_CXX_FEATURES+=	c++14
+#FORCE_CXX_STD=		c++11
+
+UNLIMIT_RESOURCES+=	datasize
+UNLIMIT_RESOURCES+=	stacksize
+
+CHECK_PORTABILITY_SKIP+=	contrib/*
+CHECK_PORTABILITY_SKIP+=	gcc/configure.orig_dist
+
+.include "../../mk/bsd.prefs.mk"
+
+.include "options.mk"
+
+.if ${OPSYS} == "Darwin"
+BUILDLINK_TRANSFORM+=	rm:-nodefaultrpaths
+CONFIGURE_ARGS+=	--disable-darwin-at-rpath
+.endif
+
+## For graphite support.
+.if !empty(PKG_OPTIONS:Mgcc-graphite)
+
+EXTRACT_ONLY+=	${ISL24}.tar.xz
+
+post-extract:
+	${MV} ${WRKDIR}/${ISL24} ${WRKSRC}/isl
+.endif
+
+CONFIGURE_ARGS+=	--enable-long-long
+CONFIGURE_ARGS+=	--with-local-prefix=${GCC_PREFIX:Q}
+CONFIGURE_ARGS+=	--enable-threads=posix
+CONFIGURE_ARGS+=	--with-boot-ldflags=${BOOT_LDFLAGS:Q}
+CONFIGURE_ARGS+=	--without-zstd
+# causes build errors even when using lang/gcc16 to self-host.
+CONFIGURE_ARGS.SunOS+=	--disable-libsanitizer
+# multilib on Darwin requires fat-binaries
+CONFIGURE_ARGS.Darwin+=	--disable-multilib
+.if !empty(OSX_SDK_PATH)
+CONFIGURE_ARGS.Darwin+=	--with-sysroot=${OSX_SDK_PATH}
+.endif
+CONFIGURE_ARGS.NetBSD+=	--with-gnu-ld --with-ld=/usr/bin/ld
+CONFIGURE_ARGS.NetBSD+=	--with-gnu-as --with-as=/usr/bin/as
+MAKE_ENV.NetBSD+=	ac_cv_func_clock_gettime=yes
+MAKE_ENV.NetBSD+=	ac_cv_func_gethostbyname_r=no
+MAKE_ENV.NetBSD+=	ac_cv_func_freelocale=no
+MAKE_ENV.NetBSD+=	ac_cv_func_newlocale=no
+MAKE_ENV.NetBSD+=	ac_cv_func_uselocale=no
+MAKE_ENV.SunOS+=	ac_cv_func_mkostemp=no
+
+.if !empty(PKGSRC_COMPILER:Mclang) || ${OPSYS} == "DragonFly" \
+    || ${OPSYS} == "NetBSD"
+# GCC 16.1.0's stage2/stage3 bootstrap comparison currently fails on
+# NetBSD/x86_64, so disable it. Revisit on updates.
+# https://gcc.gnu.org/pipermail/gcc-help/2026-August/145120.html
+CONFIGURE_ARGS+=	--disable-bootstrap
+.endif
+
+.if ${MACHINE_PLATFORM:MNetBSD-*-i386} || ${MACHINE_PLATFORM:MLinux-*-i386}
+CONFIGURE_ARGS+=	--with-arch=i486 --with-tune=i486
+.endif
+
+.if ${MACHINE_PLATFORM:MNetBSD-*-x86_64} || ${MACHINE_PLATFORM:MLinux-*-x86_64}
+CONFIGURE_ARGS+=	--with-arch=nocona --with-tune=nocona --with-fpmath=sse
+.endif
+
+.if ${MACHINE_PLATFORM:MDarwin-[0-8].*-*}
+CONFIGURE_ARGS+=	--with-dwarf2
+.endif
+
+# ${WRKSRC}/fixincludes/ looks for sed and compiles the path to sed into
+# a binary so we need to make sure we give it the installed sed and not
+# the tool wrapped one.
+MAKE_ENV+=		ac_cv_path_SED=${TOOLS_SED}
+MAKE_ENV+=		lt_cv_path_SED=${TOOLS_SED}
+
+# Determine whether to use binutils
+.if ${OPSYS} == "SunOS"
+.  if exists(/usr/sfw/bin/gobjdump)
+CONFIGURE_ENV+=		OBJDUMP=/usr/sfw/bin/gobjdump
+.  endif
+.  if exists(/usr/bin/ld)
+CONFIGURE_ARGS+=	--without-gnu-ld --with-ld=/usr/bin/ld
+.  else
+CONFIGURE_ARGS+=	--without-gnu-ld --with-ld=/usr/ccs/bin/ld
+.  endif
+.  if exists(/usr/sfw/bin/gas)
+CONFIGURE_ARGS+=	--with-gnu-as --with-as=/usr/sfw/bin/gas
+.  elif exists(/usr/ccs/bin/as)
+CONFIGURE_ARGS+=	--without-gnu-as --with-as=/usr/ccs/bin/as
+.  else
+BUILDLINK_DEPMETHOD.binutils=	full
+.    include "../../devel/binutils/buildlink3.mk"
+CONFIGURE_ARGS+=	--with-gnu-as --with-as=${PREFIX}/bin/gas
+.  endif
+.endif
+
+.if ${OPSYS} == "Linux"
+# glibc limitations, needs at least -O1
+FORTIFY_SUPPORTED=	no
+.endif
+
+.if ${OS_VARIANT} == "SmartOS"
+SUBST_CLASSES+=		ccs
+SUBST_STAGE.ccs=	pre-configure
+SUBST_FILES.ccs=	contrib/make_sunver.pl
+SUBST_SED.ccs=		-e 's,/usr/ccs/bin,/usr/bin,g'
+.endif
+
+# DO NOT REMOVE THIS SUBST.  If it fails, the corruption to
+# patch-gcc_Makefile.in chronicled in PR pkg/58963 `gcc:
+# LINK_LIBGCC_SPEC snafu' <https://gnats.NetBSD.org/58963> probably got
+# replicated yet again.  You must make sure that LINK_LIBGCC_SPEC is
+# appropriately set with @GCC_TARGET_MACHINE@ in patch-gcc_Makefile.in
+# or similar, or confirm with a discussion on tech-pkg@ that it is no
+# longer relevant before you remove this SUBST.
+SUBST_CLASSES+=		vars
+SUBST_MESSAGE.vars=	Setting target machine name path in ${SUBST_FILES.vars}
+SUBST_STAGE.vars=	pre-configure
+SUBST_FILES.vars=	gcc/Makefile.in
+SUBST_VARS.vars=	GCC_TARGET_MACHINE
+
+GCC_TARGET_MACHINE?=	${MACHINE_GNU_PLATFORM}
+BUILD_DEFS+=		GCC_TARGET_MACHINE
+
+pre-configure:
+	${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR}
+
+CHECK_BUILTIN.zlib:= yes
+.include "../../devel/zlib/builtin.mk"
+CHECK_BUILTIN.zlib:= no
+.if ${USE_BUILTIN.zlib:tl} == yes
+CONFIGURE_ARGS+=	--with-system-zlib
+.else
+CONFIGURE_ARGS+=	--without-system-zlib
+.endif
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
Index: pkgsrc/lang/gcc16/buildlink3.mk
diff -u /dev/null pkgsrc/lang/gcc16/buildlink3.mk:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/buildlink3.mk	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,24 @@
+# $NetBSD: buildlink3.mk,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+BUILDLINK_TREE+=	gcc16
+
+.if !defined(GCC16_BUILDLINK3_MK)
+GCC16_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gcc16+=	gcc16>=${_GCC_REQD}
+BUILDLINK_ABI_DEPENDS.gcc16+=	gcc16>=16.1
+BUILDLINK_PKGSRCDIR.gcc16=	../../lang/gcc16
+BUILDLINK_DEPMETHOD.gcc16?=	build
+
+BUILDLINK_PASSTHRU_DIRS+=	${BUILDLINK_PREFIX.gcc16}/gcc16
+
+BUILDLINK_FILES.gcc16=		# empty
+BUILDLINK_AUTO_VARS.gcc16=	no
+
+pkgbase := gcc16
+.include "../../mk/pkg-build-options.mk"
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.endif
+
+BUILDLINK_TREE+=	-gcc16
Index: pkgsrc/lang/gcc16/distinfo
diff -u /dev/null pkgsrc/lang/gcc16/distinfo:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/distinfo	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,31 @@
+$NetBSD: distinfo,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+BLAKE2s (gcc-16.1.0.tar.xz) = 037fe6c26509be014b26e0c16b07c2faac0c9894491b4525582d45ff88c66970
+SHA512 (gcc-16.1.0.tar.xz) = b3454958891ab47e1e5b6cb9396c0ad3b04f32fe2a7bf1153a143f21013fdb6b295ca94c98964698a688e4c1d7555ffd8ffbc20187507cce6b1c32cbcc09897a
+Size (gcc-16.1.0.tar.xz) = 102456900 bytes
+BLAKE2s (isl-0.24.tar.xz) = a3013b0d39b7fe68a1b3e15dc7e925b347d555348ee946a80f5319a76973cd61
+SHA512 (isl-0.24.tar.xz) = ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
+Size (isl-0.24.tar.xz) = 1930956 bytes
+SHA1 (patch-configure) = 21d5a86e097a6c355ae41203f223f2930d33a392
+SHA1 (patch-configure.ac) = b72e07578678926dca9ce5b008bacbfcecb68cbb
+SHA1 (patch-gcc_Makefile.in) = abc7d605ef21c213c5b71ef37d1ce790097f7660
+SHA1 (patch-gcc_config.gcc) = 65126c56f0cd9027f66b5f677773dfa9973b451c
+SHA1 (patch-gcc_config.host) = bf95dd21bfdf79d173e745fbd35c9bb99fdf4087
+SHA1 (patch-gcc_config_aarch64_aarch64-netbsd.h) = abf19e2445bce1773162bddef16cd7f41eb36827
+SHA1 (patch-gcc_config_arm_arm.h) = 9d554349869d67d6393552c33a7824f0dd53cb11
+SHA1 (patch-gcc_config_arm_bpabi.h) = 0b0de5ad95442e34397cb46739ef6e36048d6f45
+SHA1 (patch-gcc_config_arm_elf.h) = 57748157084319cb92d892f2ea5b2f3355567551
+SHA1 (patch-gcc_config_arm_netbsd-eabi.h) = 85eb89de6f2e64fac50251f06d7e4eab35903dae
+SHA1 (patch-gcc_config_arm_netbsd-elf.h) = 1930d8bf8f4d5cbd6ee1c7a48150edcd3c92b647
+SHA1 (patch-gcc_config_i386_t-netbsd64) = 914b4d2fd65f5e46681aa2ea592d0bc75299f09a
+SHA1 (patch-gcc_config_netbsd.h) = ada05409eacb33bc1e7a659f3090f2f43551a35d
+SHA1 (patch-isl_configure) = 6b7f5f6dea42bca0f90e6f9ce1131f93d607495d
+SHA1 (patch-libffi_configure) = 0ed41a6bde6987f5e6be4847e02f02abd09c176d
+SHA1 (patch-libffi_testsuite_libffi.call_float2.c) = 89e2dd6aaf2c1f75726f02362d8a8bf7178694ea
+SHA1 (patch-libgcc_config.host) = c9ea8bda0e6a1a8c4c39e4b8320a34b86e1da278
+SHA1 (patch-libgcc_crtstuff.c) = dd7808497b058bcac4aa8d91388d6a7685bb5e5c
+SHA1 (patch-libgcobol_configure.tgt) = d5a0e35e03ff8c835cbcb6cf17725ae82fd727af
+SHA1 (patch-libgcobol_posix_shim_open.cc) = ad9cdffb26023e84abb2f0b272ecad6674b50b1f
+SHA1 (patch-libgfortran_io_io.h) = d44676239a7f45e42054d24bd5224f43c20055c0
+SHA1 (patch-libquadmath_printf_quadmath-printf.c) = 78e09f1e6d61ee57cee83275093cf46b2335d204
+SHA1 (patch-libquadmath_strtod_strtod__l.c) = 6142c10d34174174cce7f06c37eab04dc431b2dc
Index: pkgsrc/lang/gcc16/options.mk
diff -u /dev/null pkgsrc/lang/gcc16/options.mk:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/options.mk	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,171 @@
+# $NetBSD: options.mk,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+PKG_OPTIONS_VAR=	PKG_OPTIONS.${GCC_PKGNAME}
+PKG_SUPPORTED_OPTIONS=	nls gcc-inplace-math gcc-c++ gcc-cobol gcc-fortran \
+			gcc-go gcc-objc gcc-objc++ gcc-graphite \
+			always-libgcc
+PKG_SUGGESTED_OPTIONS=	gcc-c++ gcc-fortran gcc-objc gcc-objc++ \
+			gcc-graphite gcc-inplace-math
+
+.include "../../mk/bsd.fast.prefs.mk"
+
+.if ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+=	nls
+.  if ${MACHINE_PLATFORM:M*-x86_64} || ${MACHINE_PLATFORM:M*-aarch64}
+# Test riscv64 as well, it should work.
+PKG_SUGGESTED_OPTIONS+=	gcc-cobol
+.  endif
+.elif ${OPSYS} == "Linux"
+PKG_SUGGESTED_OPTIONS+=	nls
+.elif ${OPSYS} == "DragonFly"
+PKG_SUGGESTED_OPTIONS+=	nls
+.elif ${OPSYS} == "SunOS"
+PKG_SUGGESTED_OPTIONS+=	gcc-inplace-math always-libgcc
+.else
+.endif
+
+.include "../../mk/compiler.mk"
+.if empty(PKGSRC_COMPILER:Mgcc)
+PKG_SUGGESTED_OPTIONS+=			always-libgcc
+.endif
+
+###
+### Determine if multilib is avalible.
+###
+MULTILIB_SUPPORTED?=	unknown
+.if ${MACHINE_PLATFORM:MLinux-*-x86_64}
+.  if exists(/usr/include/x86_64-linux-gnu/gnu)
+_GNU_INCLUDE_DIR=	/usr/include/x86_64-linux-gnu/gnu
+.  else
+_GNU_INCLUDE_DIR=	/usr/include/gnu
+.  endif
+.  if exists(${_GNU_INCLUDE_DIR}/stubs-64.h) && \
+     !exists(${_GNU_INCLUDE_DIR}/stubs-32.h)
+MULTILIB_SUPPORTED=	No
+.  else
+MULTILIB_SUPPORTED=	Yes
+.  endif
+.endif
+.if !empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss])
+PKG_SUPPORTED_OPTIONS+=	gcc-multilib
+PKG_SUGGESTED_OPTIONS+=	gcc-multilib
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+###
+### Don't install libgcc if it's older than the system one
+###
+.if empty(PKG_OPTIONS:Malways-libgcc)
+
+.  for _libdir_ in ${_OPSYS_LIB_DIRS}
+.    if exists(${_libdir_})
+BASE_LIBGCC!=			find ${_libdir_} -name libgcc_s.so 2> /dev/null
+BASE_LIBGCC_MATCH_STRING!=	${ECHO} ${BASE_LIBGCC} ${GCC16_DIST_VERSION} | \
+				${AWK} -f ../../mk/scripts/larger_symbol_version.awk
+.      if ${BASE_LIBGCC_MATCH_STRING:Mnewer}
+DELETE_INSTALLED_LIBGCC=	yes
+.      endif
+.    endif
+.  endfor
+
+.  if ${DELETE_INSTALLED_LIBGCC:Uno} == "yes"
+post-install:	delete-installed-libgcc
+
+.PHONY: delete-installed-libgcc
+delete-installed-libgcc:
+	${FIND} ${DESTDIR} -name 'libgcc_s.so*' -delete
+
+.  endif
+
+.endif
+
+###
+### Native Language Support
+###
+.if !empty(PKG_OPTIONS:Mnls)
+USE_TOOLS+=		msgfmt
+CONFIGURE_ARGS+=	--enable-nls
+CONFIGURE_ARGS+=	--with-libiconv-prefix=${BUILDLINK_PREFIX.iconv}
+MAKE_ENV+=		ICONVPREFIX=${BUILDLINK_PREFIX.iconv}
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../devel/gettext-lib/buildlink3.mk"
+.else
+CONFIGURE_ARGS+=	--disable-nls
+.endif
+
+###
+### Multilib Support
+###
+.if (!empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss]) && \
+      empty(PKG_OPTIONS:Mgcc-multilib) ) || \
+    !empty(MULTILIB_SUPPORTED:M[Nn][Oo])
+CONFIGURE_ARGS+=	--disable-multilib
+.endif
+
+###
+### Build math libraries in place
+###
+.if !empty(PKG_OPTIONS:Mgcc-inplace-math)
+.  include "../../devel/gmp/inplace.mk"
+.  include "../../math/mpcomplex/inplace.mk"
+.  include "../../math/mpfr/inplace.mk"
+.else
+CONFIGURE_ARGS+=	--with-gmp=${BUILDLINK_PREFIX.gmp}
+CONFIGURE_ARGS+=	--with-mpc=${BUILDLINK_PREFIX.mpcomplex}
+CONFIGURE_ARGS+=	--with-mpfr=${BUILDLINK_PREFIX.mpfr}
+LIBS.SunOS+=		-lgmp
+.  include "../../devel/gmp/buildlink3.mk"
+.  include "../../math/mpcomplex/buildlink3.mk"
+.  include "../../math/mpfr/buildlink3.mk"
+.endif
+
+###
+### Graphite Support
+###
+.if !empty(PKG_OPTIONS:Mgcc-graphite)
+ISL24=			isl-0.24
+SITES.${ISL24}.tar.bz2=	${MASTER_SITE_GNU:=gcc/infrastructure/}
+DISTFILES+=		${ISL24}.tar.xz
+.endif
+
+###
+### Optional languages
+### Ada could be added although there is a bootstrapping issue.
+###
+
+.if !empty(PKG_OPTIONS:Mgcc-objc++)
+.  if empty(PKG_OPTIONS:Mgcc-c++)
+PKG_OPTIONS+=		gcc-c++
+.  endif
+.  if empty(PKG_OPTIONS:Mgcc-objc)
+PKG_OPTIONS+=		gcc-objc
+.  endif
+LANGS+=			obj-c++
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-objc)
+LANGS+=			objc
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-go)
+LANGS+=			go
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-fortran)
+LANGS+=			fortran
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-cobol)
+LANGS+=			cobol
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-c++)
+LANGS+=			c++
+USE_TOOLS+=		perl
+CONFIGURE_ARGS+=	--enable-__cxa_atexit
+CONFIGURE_ARGS+=	--with-gxx-include-dir=${GCC_PREFIX}/include/c++/
+.else
+CONFIGURE_ARGS+=	--disable-build-with-cxx
+CONFIGURE_ARGS+=	--disable-build-poststage1-with-cxx
+.endif
Index: pkgsrc/lang/gcc16/version.mk
diff -u /dev/null pkgsrc/lang/gcc16/version.mk:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/version.mk	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,3 @@
+# $NetBSD: version.mk,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+GCC16_DIST_VERSION:=	16.1.0

Index: pkgsrc/lang/gcc16/patches/patch-configure
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-configure:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-configure	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,23 @@
+$NetBSD: patch-configure,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+Enable COBOL on NetBSD amd64/arm64/riscv64.
+
+--- configure.orig	2026-04-30 08:33:19.000000000 +0000
++++ configure
+@@ -3659,14 +3659,14 @@ case ,${enable_languages}, in
+     ;;
+   *)
+     case "${target}" in
+-      aarch64-*-linux*|x86_64-*-linux*)
++      aarch64-*-linux*|x86_64-*-linux*|aarch64-*-netbsd*|x86_64-*-netbsd*|riscv64-*-netbsd*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
+         ;;
+     esac
+     case "${host}" in
+-      aarch64-*-linux*|x86_64-*-linux*)
++      aarch64-*-linux*|x86_64-*-linux*|aarch64-*-netbsd*|x86_64-*-netbsd*|riscv64-*-netbsd*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
Index: pkgsrc/lang/gcc16/patches/patch-configure.ac
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-configure.ac:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-configure.ac	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-configure.ac,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+Enable COBOL on NetBSD amd64/arm64/riscv64.
+
+
+--- configure.ac.orig	2025-08-07 23:51:39.874338130 -0700
++++ configure.ac	2025-11-05 19:22:39.706058829 -0800
+@@ -801,14 +801,14 @@ case ,${enable_languages}, in
+     ;;
+   *)
+     case "${target}" in
+-      aarch64-*-linux*|x86_64-*-linux*)
++      aarch64-*-linux*|x86_64-*-linux*|aarch64-*-netbsd*|x86_64-*-netbsd*|riscv64-*-netbsd*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
+         ;;
+     esac
+     case "${host}" in
+-      aarch64-*-linux*|x86_64-*-linux*)
++      aarch64-*-linux*|x86_64-*-linux*|aarch64-*-netbsd*|x86_64-*-netbsd*|riscv64-*-netbsd*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
Index: pkgsrc/lang/gcc16/patches/patch-gcc_Makefile.in
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_Makefile.in:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_Makefile.in	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-gcc_Makefile.in,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+Ensure libgcc from this GCC is found before others.  Note that there must
+not be a whitespace between $(LINKER_RPATH_FLAG) and the path.  Otherwise
+the flag may be misinterpreted by the linker (e.g. Apple ld).
+
+--- gcc/Makefile.in.orig	2026-04-30 08:33:20.000000000 +0000
++++ gcc/Makefile.in
+@@ -2658,6 +2658,7 @@ DRIVER_DEFINES = \
+ # Language-independent files.
+ 
+ DRIVER_DEFINES = \
++  -DLINK_LIBGCC_SPEC="\"%D $(LINKER_RPATH_FLAG)$(prefix)/@GCC_TARGET_MACHINE@/lib/%M $(LINKER_RPATH_FLAG)$(libdir)/%M \"" \
+   -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
+   -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
+   -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config.gcc
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config.gcc:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config.gcc	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,14 @@
+$NetBSD: patch-gcc_config.gcc,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+Enable multilib support on amd64.
+
+--- gcc/config.gcc.orig	2025-04-25 01:18:00.000000000 -0700
++++ gcc/config.gcc	2025-08-03 17:22:06.592442114 -0700
+@@ -1992,6 +1992,7 @@
+ 	;;
+ x86_64-*-netbsd*)
+ 	tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
++	tmake_file="${tmake_file} i386/t-netbsd64"
+ 	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+ 	;;
+ i[34567]86-*-openbsd*)
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config.host
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config.host:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config.host	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-gcc_config.host,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+Add aarch64*-*-netbsd*.
+
+--- gcc/config.host.orig	2022-05-06 07:30:56.000000000 +0000
++++ gcc/config.host
+@@ -99,7 +99,7 @@ case ${host} in
+ esac
+ 
+ case ${host} in
+-  aarch64*-*-freebsd* | aarch64*-*-linux* | aarch64*-*-fuchsia* |\
++  aarch64*-*-freebsd* | aarch64*-*-netbsd* | aarch64*-*-linux* | aarch64*-*-fuchsia* |\
+   aarch64*-*-darwin*)
+     case ${target} in
+       aarch64*-*-*)
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_aarch64_aarch64-netbsd.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_aarch64_aarch64-netbsd.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_aarch64_aarch64-netbsd.h	Mon Aug 10 21:41:34 2026
@@ -0,0 +1,18 @@
+$NetBSD: patch-gcc_config_aarch64_aarch64-netbsd.h,v 1.1 2026/08/10 21:41:34 wiz Exp $
+
+Match what is in NetBSD src.  Fixes at least aarch64eb, and
+probably several others.
+
+--- gcc/config/aarch64/aarch64-netbsd.h.orig	2021-04-08 04:56:28.033740243 -0700
++++ gcc/config/aarch64/aarch64-netbsd.h	2021-04-24 00:16:41.451665444 -0700
+@@ -20,6 +20,10 @@
+ #ifndef GCC_AARCH64_NETBSD_H
+ #define GCC_AARCH64_NETBSD_H
+ 
++/* NetBSD malloc(3) does 64, not 128 bytes. */
++#undef MALLOC_ABI_ALIGNMENT
++#define MALLOC_ABI_ALIGNMENT  64
++
+ #define TARGET_LINKER_BIG_EMULATION "aarch64nbsdb"
+ #define TARGET_LINKER_LITTLE_EMULATION "aarch64nbsd"
+ 
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_arm.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_arm.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_arm.h	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,45 @@
+$NetBSD: patch-gcc_config_arm_arm.h,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+--- gcc/config/arm/arm.h.orig	2021-04-08 04:56:28.057740534 -0700
++++ gcc/config/arm/arm.h	2022-01-31 21:11:39.595024008 -0800
+@@ -937,6 +937,11 @@
+ #define ARM_UNWIND_INFO  0
+ #endif
+ 
++/* Overriden by config/arm/netbsd-eabi.h.  */
++#ifndef ARM_DWARF_UNWIND_TABLES
++#define ARM_DWARF_UNWIND_TABLES 0
++#endif
++
+ /* Use r0 and r1 to pass exception handling information.  */
+ #define EH_RETURN_DATA_REGNO(N) (((N) < 2) ? N : INVALID_REGNUM)
+ 
+@@ -948,11 +953,19 @@
+ #define ARM_TARGET2_DWARF_FORMAT DW_EH_PE_pcrel
+ #endif
+ 
++#if ARM_DWARF_UNWIND_TABLES
++/* DWARF unwinding uses the normal indirect/pcrel vs absptr format
++   for 32bit platforms. */
++#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
++  (flag_pic ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
++            : DW_EH_PE_absptr)
++#else
+ /* ttype entries (the only interesting data references used)
+    use TARGET2 relocations.  */
+ #define ASM_PREFERRED_EH_DATA_FORMAT(code, data) \
+   (((code) == 0 && (data) == 1 && ARM_UNWIND_INFO) ? ARM_TARGET2_DWARF_FORMAT \
+ 			       : DW_EH_PE_absptr)
++#endif
+ 
+ /* The native (Norcroft) Pascal compiler for the ARM passes the static chain
+    as an invisible last argument (possible since varargs don't exist in
+@@ -2342,7 +2355,7 @@
+ 
+ /* -mcpu=native handling only makes sense with compiler running on
+    an ARM chip.  */
+-#if defined(__arm__)
++#if defined(__arm__) && defined(__linux__)
+ extern const char *host_detect_local_cpu (int argc, const char **argv);
+ #define HAVE_LOCAL_CPU_DETECT
+ # define MCPU_MTUNE_NATIVE_FUNCTIONS			\
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_bpabi.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_bpabi.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_bpabi.h	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,22 @@
+$NetBSD: patch-gcc_config_arm_bpabi.h,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+--- gcc/config/arm/bpabi.h.orig	2021-04-08 04:56:28.061740583 -0700
++++ gcc/config/arm/bpabi.h	2022-01-31 21:13:16.734263818 -0800
+@@ -24,6 +24,7 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ /* Use the AAPCS ABI by default.  */
++#undef ARM_DEFAULT_ABI
+ #define ARM_DEFAULT_ABI ARM_ABI_AAPCS
+ 
+ /* Assume that AAPCS ABIs should adhere to the full BPABI.  */
+@@ -107,7 +108,9 @@
+ /* The BPABI specifies the use of .{init,fini}_array.  Therefore, we
+    do not want GCC to put anything into the .{init,fini} sections.  */
+ #undef INIT_SECTION_ASM_OP
++#define INIT_SECTION_ASM_OP ""
+ #undef FINI_SECTION_ASM_OP
++#define FINI_SECTION_ASM_OP ""
+ #define INIT_ARRAY_SECTION_ASM_OP ARM_EABI_CTORS_SECTION_OP
+ #define FINI_ARRAY_SECTION_ASM_OP ARM_EABI_DTORS_SECTION_OP
+ 
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_elf.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_elf.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_elf.h	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,14 @@
+$NetBSD: patch-gcc_config_arm_elf.h,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+--- gcc/config/arm/elf.h.orig	2021-04-08 04:56:28.065740630 -0700
++++ gcc/config/arm/elf.h	2022-01-31 21:14:04.684223580 -0800
+@@ -147,6 +147,8 @@
+ #undef L_floatdidf
+ #undef L_floatdisf
+ #undef L_floatundidf
++/* XXXMRG: don't take this out, we need it! */
++# ifndef __NetBSD__
+ #undef L_floatundisf
++# endif
+ #endif
+-
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-eabi.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-eabi.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-eabi.h	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,57 @@
+$NetBSD: patch-gcc_config_arm_netbsd-eabi.h,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+--- gcc/config/arm/netbsd-eabi.h.orig	2021-04-08 04:56:28.065740630 -0700
++++ gcc/config/arm/netbsd-eabi.h	2022-01-31 21:15:29.555403989 -0800
+@@ -49,8 +49,8 @@
+ 
+ #undef ARM_UNWIND_INFO
+ #define ARM_UNWIND_INFO 0
+-#undef DWARF2_UNWIND_INFO
+-#define DWARF2_UNWIND_INFO 1
++#undef ARM_DWARF_UNWIND_TABLES
++#define ARM_DWARF_UNWIND_TABLES 1
+ 
+ #undef TARGET_OS_CPP_BUILTINS
+ #define TARGET_OS_CPP_BUILTINS()		\
+@@ -59,7 +59,7 @@
+       if (TARGET_AAPCS_BASED)			\
+ 	TARGET_BPABI_CPP_BUILTINS();		\
+       NETBSD_OS_CPP_BUILTINS_ELF();		\
+-      if (DWARF2_UNWIND_INFO)			\
++      if (ARM_DWARF_UNWIND_TABLES)		\
+ 	builtin_define ("__ARM_DWARF_EH__");	\
+     }						\
+   while (0)
+@@ -81,17 +81,25 @@
+ 
+ #undef SUBTARGET_EXTRA_ASM_SPEC
+ #define SUBTARGET_EXTRA_ASM_SPEC		\
+-  "%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu} "	\
++  "-matpcs %{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu} "	\
+   "%{fpic|fpie:-k} "				\
+   "%{fPIC|fPIE:-k}"
+ 
++/* Default to full VFP if -mhard-float is specified.  */
++#undef SUBTARGET_ASM_FLOAT_SPEC
++#define SUBTARGET_ASM_FLOAT_SPEC	\
++  "%{mhard-float:%{!mfpu=*:-mfpu=vfp}}   \
++   %{mfloat-abi=hard:%{!mfpu=*:-mfpu=vfp}}"
++
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS						\
+   { "subtarget_extra_asm_spec",	SUBTARGET_EXTRA_ASM_SPEC },		\
++  { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, 		\
+   { "linker_eabi_suffix",	TARGET_LINKER_EABI_SUFFIX },		\
+   { "linker_emulation",		TARGET_LINKER_EMULATION },		\
+   { "linker_big_emulation",	TARGET_LINKER_BIG_EMULATION },		\
+   { "linker_little_emulation",	TARGET_LINKER_LITTLE_EMULATION },	\
++  { "be8_link_spec",		BE8_LINK_SPEC }, 			\
+   { "target_fix_v4bx_spec",	TARGET_FIX_V4BX_SPEC },			\
+   NETBSD_SUBTARGET_EXTRA_SPECS
+ 
+@@ -102,4 +110,5 @@
+   "-X %{mbig-endian:-EB -m %(linker_big_emulation)} "		\
+   "%{mlittle-endian:-EL -m %(linker_liitle_emulation)} "	\
+   "%{!mbig-endian:%{!mlittle-endian:-m %(linker_emulation)}} "	\
++  "%(be8_link_spec) "						\
+   "%(target_fix_v4bx_spec) %(netbsd_link_spec)"
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-elf.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-elf.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_arm_netbsd-elf.h	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,80 @@
+$NetBSD: patch-gcc_config_arm_netbsd-elf.h,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+--- gcc/config/arm/netbsd-elf.h.orig	2026-04-30 08:33:20.000000000 +0000
++++ gcc/config/arm/netbsd-elf.h
+@@ -27,9 +27,20 @@
+ 
+ /* arm.h defaults to ARM6 CPU.  */
+ 
+-/* This defaults us to little-endian.  */
+-#ifndef TARGET_ENDIAN_DEFAULT
+-#define TARGET_ENDIAN_DEFAULT 0
++/* Default EABI to armv5t so that thumb shared libraries work.
++   The ARM926EH-S core is the default for armv5te, so set
++   SUBTARGET_CPU_DEFAULT to achieve this.  */
++
++#define SUBTARGET_CPU_DEFAULT \
++	(ARM_DEFAULT_ABI != ARM_ABI_APCS && ARM_DEFAULT_ABI != ARM_ABI_ATPCS \
++	    ? TARGET_CPU_arm926ejs : TARGET_CPU_arm6)
++
++/* TARGET_BIG_ENDIAN_DEFAULT is set in
++   config.gcc for big endian configurations.  */
++#if TARGET_BIG_ENDIAN_DEFAULT
++#define TARGET_ENDIAN_DEFAULT    MASK_BIG_END
++#else
++#define TARGET_ENDIAN_DEFAULT    0
+ #endif
+ 
+ #undef MULTILIB_DEFAULTS
+@@ -56,25 +67,28 @@
+ 
+ #undef SUBTARGET_EXTRA_ASM_SPEC
+ #define SUBTARGET_EXTRA_ASM_SPEC	\
++  "-matpcs %{mabi=aapcs*:-meabi=5} "	\
+   "%{" FPIE_OR_FPIC_SPEC ":-k}"
+ 
++#undef SUBTARGET_EXTRA_SPECS
++#define SUBTARGET_EXTRA_SPECS					\
++  { "subtarget_extra_asm_spec",	SUBTARGET_EXTRA_ASM_SPEC },	\
++  { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC },	\
++  NETBSD_SUBTARGET_EXTRA_SPECS
++
+ /* Default to full VFP if -mfloat-abi=hard is specified.  */
+ #undef SUBTARGET_ASM_FLOAT_SPEC
+-#define SUBTARGET_ASM_FLOAT_SPEC	\
+-  "%{mfloat-abi=hard:{!mfpu=*:-mfpu=vfp}}"
++#define SUBTARGET_ASM_FLOAT_SPEC		\
++  "%{mhard-float:%{!mfpu=*:-mfpu=vfp}}		\
++   %{mfloat-abi=hard:%{!mfpu=*:-mfpu=vfp}}"
+ 
+-#undef SUBTARGET_EXTRA_SPECS
+-#define SUBTARGET_EXTRA_SPECS				\
+-  { "subtarget_extra_asm_spec",	SUBTARGET_EXTRA_ASM_SPEC }, \
+-  { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
+-  { "netbsd_link_spec",		NETBSD_LINK_SPEC_ELF },	\
+-  { "netbsd_entry_point",	NETBSD_ENTRY_POINT },
+-
+ #define NETBSD_ENTRY_POINT "__start"
+ 
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+-  "-X %{mbig-endian:-EB} %{mlittle-endian:-EL} \
++  "-X \
++   %{mbig-endian:-EB %{-mabi=aapcs*:-m armelfb_nbsd_eabi}} \
++   %{mlittle-endian:-EL %{-mabi=aapcs*:-m armelf_nbsd_eabi}} \
+    %(netbsd_link_spec)"
+ 
+ /* Make GCC agree with <machine/ansi.h>.  */
+@@ -84,6 +98,12 @@
+ 
+ #undef PTRDIFF_TYPE
+ #define PTRDIFF_TYPE "long int"
++
++#undef INTPTR_TYPE
++#define INTPTR_TYPE PTRDIFF_TYPE
++
++#undef UINTPTR_TYPE
++#define UINTPTR_TYPE SIZE_TYPE
+ 
+ /* NetBSD does its profiling differently to the Acorn compiler. We
+    don't need a word following the mcount call; and to skip it
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_i386_t-netbsd64
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_i386_t-netbsd64:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_i386_t-netbsd64	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,22 @@
+$NetBSD: patch-gcc_config_i386_t-netbsd64,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+Enable multilib support on amd64.
+
+--- /dev/null	2025-08-03 17:17:47.388033634 -0700
++++ gcc/config/i386/t-netbsd64	2025-08-03 17:20:16.285905032 -0700
+@@ -0,0 +1,15 @@
++# NetBSD has "non-native" libraries in /usr/lib/<arch>.
++# For NetBSD/amd64 we thus have /usr/lib and /usr/lib/i386.
++
++MULTILIB_OPTIONS = m64/m32
++MULTILIB_DIRNAMES = 64 32 
++MULTILIB_OSDIRNAMES = . ../lib/i386
++
++LIBGCC = stmp-multilib
++INSTALL_LIBGCC = install-multilib
++
++# The pushl in CTOR initialization interferes with frame pointer elimination.
++# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
++# because then __FRAME_END__ might not be the last thing in .eh_frame
++# section.
++CRTSTUFF_T_CFLAGS += -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
Index: pkgsrc/lang/gcc16/patches/patch-gcc_config_netbsd.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-gcc_config_netbsd.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-gcc_config_netbsd.h	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,14 @@
+$NetBSD: patch-gcc_config_netbsd.h,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+NetBSD doesn't have a -ldl.
+
+
+--- gcc/config/netbsd.h.orig	2025-08-07 23:51:40.599350224 -0700
++++ gcc/config/netbsd.h	2025-11-06 12:07:01.954484996 -0800
+@@ -166,3 +166,6 @@ along with GCC; see the file COPYING3.  
+   do {									\
+     netbsd_patch_builtins ();						\
+   } while(0)
++
++/* NetBSD does not have a dl library. */
++#define DL_LIBRARY ""
Index: pkgsrc/lang/gcc16/patches/patch-isl_configure
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-isl_configure:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-isl_configure	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-isl_configure,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+Fix unportable test(1) operator.
+
+--- isl/configure.orig	2021-04-26 09:13:19.000000000 +0000
++++ isl/configure
+@@ -20657,7 +20657,7 @@ fi
+   HAVE_CXX11_FALSE=
+ fi
+ 
+- if test "x$with_int" == "ximath-32"; then
++ if test "x$with_int" = "ximath-32"; then
+   SMALL_INT_OPT_TRUE=
+   SMALL_INT_OPT_FALSE='#'
+ else
+@@ -20665,7 +20665,7 @@ fi
+   SMALL_INT_OPT_FALSE=
+ fi
+ 
+-if test "x$with_int" == "ximath-32"; then :
++if test "x$with_int" = "ximath-32"; then :
+ 
+ 
+ $as_echo "#define USE_SMALL_INT_OPT /**/" >>confdefs.h
Index: pkgsrc/lang/gcc16/patches/patch-libffi_configure
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libffi_configure:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libffi_configure	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-libffi_configure,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90146
+https://github.com/libffi/libffi/issues/485
+
+--- libffi/configure.orig	2026-04-30 08:33:28.000000000 +0000
++++ libffi/configure
+@@ -16740,7 +16740,7 @@ $as_echo "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confd
+ $as_echo "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h
+ 
+      ;;
+-     *-apple-* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris* | *-linux-android*)
++     *-apple-* | *-*-freebsd* | *-*-kfreebsd* | *-*-netbsd* | *-*-openbsd* | *-pc-solaris* | *-linux-android*)
+ 
+ $as_echo "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h
+ 
Index: pkgsrc/lang/gcc16/patches/patch-libffi_testsuite_libffi.call_float2.c
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libffi_testsuite_libffi.call_float2.c:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libffi_testsuite_libffi.call_float2.c	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-libffi_testsuite_libffi.call_float2.c,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90146
+
+--- libffi/testsuite/libffi.call/float2.c.orig	2022-05-06 07:30:59.000000000 +0000
++++ libffi/testsuite/libffi.call/float2.c
+@@ -47,7 +47,7 @@ int main (void)
+   /* long double support under SunOS/gcc is pretty much non-existent.
+      You'll get the odd bus error in library routines like printf() */
+ #else
+-  printf ("%Lf, %Lf, %Lf, %Lf\n", ld, ldblit(f), ld - ldblit(f), LDBL_EPSILON);
++  printf ("%Lf, %Lf, %Lf, %Lf\n", (long double)ld, (long double)ldblit(f), (long double)(ld - ldblit(f)), (long double)LDBL_EPSILON);
+ #endif
+ 
+   /* These are not always the same!! Check for a reasonable delta */
Index: pkgsrc/lang/gcc16/patches/patch-libgcc_config.host
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libgcc_config.host:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libgcc_config.host	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-libgcc_config.host,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+Fix NetBSD/arm64.
+
+
+--- libgcc/config.host.orig	2025-08-07 23:51:44.833420855 -0700
++++ libgcc/config.host	2025-11-07 03:15:28.811881325 -0800
+@@ -424,6 +424,7 @@ aarch64*-*-freebsd*)
+ aarch64*-*-netbsd*)
+ 	extra_parts="$extra_parts crtfastmath.o"
+ 	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
++	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
+ 	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+ 	tmake_file="${tmake_file} t-dfprules"
+ 	md_unwind_def_header=aarch64/aarch64-unwind-def.h
Index: pkgsrc/lang/gcc16/patches/patch-libgcc_crtstuff.c
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libgcc_crtstuff.c:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libgcc_crtstuff.c	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-libgcc_crtstuff.c,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90147
+
+--- libgcc/crtstuff.c.orig	2025-04-25 08:18:04.000000000 +0000
++++ libgcc/crtstuff.c
+@@ -81,7 +81,7 @@ call_ ## FUNC (void)					\
+ #endif
+ 
+ #if defined(TARGET_DL_ITERATE_PHDR) && \
+-   (defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__))
++   (defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__))
+ #define BSD_DL_ITERATE_PHDR_AVAILABLE
+ #endif
+ 
Index: pkgsrc/lang/gcc16/patches/patch-libgcobol_configure.tgt
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libgcobol_configure.tgt:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libgcobol_configure.tgt	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,31 @@
+$NetBSD: patch-libgcobol_configure.tgt,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+Enable libgcobol on NetBSD amd64, arm64, and riscv64.
+
+
+--- libgcobol/configure.tgt.orig	2025-08-07 23:51:44.929422457 -0700
++++ libgcobol/configure.tgt	2025-11-06 11:01:55.070054980 -0800
+@@ -26,7 +26,7 @@
+ LIBGCOBOL_SUPPORTED=no
+ 
+ case "${target}" in
+-    aarch64*-*-linux*)
++    aarch64*-*-linux* | aarch64*-*-netbsd*)
+ 	LIBGCOBOL_SUPPORTED=yes
+ 	;;
+     powerpc64le-*-linux*)
+@@ -34,12 +34,12 @@ case "${target}" in
+ 		LIBGCOBOL_SUPPORTED=yes
+ 	fi
+ 	;;
+-    riscv64-*-linux*)
++    riscv64-*-linux* | riscv64-*-netbsd*)
+ 	if test x$ac_cv_sizeof_void_p = x8; then
+ 		LIBGCOBOL_SUPPORTED=yes
+ 	fi
+ 	;;
+-    x86_64-*-linux* | i?86-*-linux* | x86_64-*-darwin*)
++    x86_64-*-linux* | i?86-*-linux* | x86_64-*-darwin* | x86_64-*-netbsd*)
+ 	if test x$ac_cv_sizeof_void_p = x8; then
+ 		LIBGCOBOL_SUPPORTED=yes
+ 	fi
Index: pkgsrc/lang/gcc16/patches/patch-libgcobol_posix_shim_open.cc
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libgcobol_posix_shim_open.cc:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libgcobol_posix_shim_open.cc	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,35 @@
+$NetBSD: patch-libgcobol_posix_shim_open.cc,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+Guard Linux-specific open(2) flags (O_DIRECT, O_LARGEFILE, O_NOATIME,
+O_PATH, O_TMPFILE) with #ifdef so libgcobol builds on NetBSD, where
+these flags are not defined.
+
+
+--- libgcobol/posix/shim/open.cc.ORIG	2026-04-30 09:33:28.000000000 +0100
++++ libgcobol/posix/shim/open.cc	2026-05-11 11:31:52.302652073 +0100
+@@ -29,15 +29,25 @@
+     { cbl::PSX_O_APPEND, O_APPEND },
+     { cbl::PSX_O_NONBLOCK, O_NONBLOCK },
+     { cbl::PSX_O_DSYNC, O_DSYNC },
++#ifdef O_DIRECT
+     { cbl::PSX_O_DIRECT, O_DIRECT },
++#endif
++#ifdef O_LARGEFILE
+     { cbl::PSX_O_LARGEFILE, O_LARGEFILE },
++#endif
+     { cbl::PSX_O_DIRECTORY, O_DIRECTORY },
+     { cbl::PSX_O_NOFOLLOW, O_NOFOLLOW },
++#ifdef O_NOATIME
+     { cbl::PSX_O_NOATIME, O_NOATIME },
++#endif
+     { cbl::PSX_O_CLOEXEC, O_CLOEXEC },
+     { cbl::PSX_O_SYNC, O_SYNC },
++#ifdef O_PATH
+     { cbl::PSX_O_PATH, O_PATH },
++#endif
++#ifdef O_TMPFILE
+     { cbl::PSX_O_TMPFILE, O_TMPFILE },
++#endif
+   };
+ 
+   static const std::map<int, int> mode_bits {
Index: pkgsrc/lang/gcc16/patches/patch-libgfortran_io_io.h
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libgfortran_io_io.h:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libgfortran_io_io.h	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,18 @@
+$NetBSD: patch-libgfortran_io_io.h,v 1.1 2026/08/10 21:41:35 wiz Exp $
+
+Don't declare old_locale* an internal_proto to avoid linking problems
+
+--- libgfortran/io/io.h.orig	2018-01-07 10:17:52.000000000 +0000
++++ libgfortran/io/io.h
+@@ -57,11 +57,8 @@ extern locale_t c_locale;
+ internal_proto(c_locale);
+ #else
+ extern char* old_locale;
+-internal_proto(old_locale);
+ extern int old_locale_ctr;
+-internal_proto(old_locale_ctr);
+ extern __gthread_mutex_t old_locale_lock;
+-internal_proto(old_locale_lock);
+ #endif
+ 
+ 
Index: pkgsrc/lang/gcc16/patches/patch-libquadmath_printf_quadmath-printf.c
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libquadmath_printf_quadmath-printf.c:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libquadmath_printf_quadmath-printf.c	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,26 @@
+$NetBSD: patch-libquadmath_printf_quadmath-printf.c,v 1.1 2026/08/10 21:41:35 wiz 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
+@@ -189,7 +189,7 @@ quadmath_snprintf (char *str, size_t siz
+       ++format;
+       info.width = va_arg (ap, int);
+     }
+-  else if (isdigit (*format))
++  else if (isdigit ((unsigned char) *format))
+     /* Constant width specification.  */
+     info.width = read_int (&format);
+ 
+@@ -206,7 +206,7 @@ quadmath_snprintf (char *str, size_t siz
+ 
+ 	  info.prec = va_arg (ap, int);
+ 	}
+-      else if (isdigit (*format))
++      else if (isdigit ((unsigned char) *format))
+ 	info.prec = read_int (&format);
+       else
+ 	/* "%.?" is treated like "%.0?".  */
Index: pkgsrc/lang/gcc16/patches/patch-libquadmath_strtod_strtod__l.c
diff -u /dev/null pkgsrc/lang/gcc16/patches/patch-libquadmath_strtod_strtod__l.c:1.1
--- /dev/null	Mon Aug 10 21:41:35 2026
+++ pkgsrc/lang/gcc16/patches/patch-libquadmath_strtod_strtod__l.c	Mon Aug 10 21:41:35 2026
@@ -0,0 +1,23 @@
+$NetBSD: patch-libquadmath_strtod_strtod__l.c,v 1.1 2026/08/10 21:41:35 wiz 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
++++ libquadmath/strtod/strtod_l.c
+@@ -57,10 +57,10 @@
+ # define STRING_TYPE char
+ # define CHAR_TYPE char
+ # define L_(Ch) Ch
+-# define ISSPACE(Ch) isspace (Ch)
+-# define ISDIGIT(Ch) isdigit (Ch)
+-# define ISXDIGIT(Ch) isxdigit (Ch)
+-# define TOLOWER(Ch) tolower (Ch)
++# define ISSPACE(Ch) isspace ((unsigned char) Ch)
++# define ISDIGIT(Ch) isdigit ((unsigned char) Ch)
++# define ISXDIGIT(Ch) isxdigit ((unsigned char) Ch)
++# define TOLOWER(Ch) tolower ((unsigned char) Ch)
+ # define TOLOWER_C(Ch) \
+   ({__typeof(Ch) __tlc = (Ch); \
+     (__tlc >= 'A' && __tlc <= 'Z') ? __tlc - 'A' + 'a' : __tlc; })
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.